单击标题动态变化的网页上的 link 的描述性编程
Descriptive programming to click the link on web whose title changes dynamically
我正在尝试在 UFT 中编写脚本,我需要在其中单击 link(始终是 table 中的第一个 link),其标题会动态变化。我尝试以下操作:
Dim obj_ChkDesc
Set obj_ChkDesc=Description.Create
obj_ChkDesc(“Class Name”).value = “Link”
Obj_ChkDesc("name").value="Log in"
Browser().page().link(obj_ChkDesc).click
它不起作用,因为当值更改失败时。
谁能告诉我点击标题动态变化的第一个 link 需要做什么?
提前致谢。
首先,根据你的说法:where i need to click on a link
(Always the first link in the table)
,你不需要使用Obj_ChkDesc("name").value
因为一般来说 name
属性 每个 link 都会不同。通过使用它,您正在专门寻找 link.
您可以简单地使用:
Browser().page().ChildObjects(obj_ChkDesc)(0).Click
另一件事,您还应该在上面的语句中包含 WebTable,否则您最终会覆盖页面中的所有 link,而不仅仅是特定的 table.
有两种方法。
首先,使用Regular Expression
。但它假设 link
名称应遵循一些规则,比如动态 10 位数字,然后您可以使用 [0-9]{10}
作为正则表达式模式。为此,您需要使用 Spy
来捕获此 link,然后将其 属性 像 outerhtml
更改为正则表达式...
另一种方式(我推荐这种方式):既然你提到它是一种WebTable
。有一种方法叫做ChildItem
。假设您要单击的 link 始终位于 Row 1, Col 1
。然后你可以这样写:
'Set Table object
Set TableObj = Browser(...).Page(...).WebTable(...)
'Locate Link
Set LinkObj = TableObj.ChildItem(1,1,"Link",0)
LinkObj.Click
注意这里的参数1,1,"Link",0
意思是Row,Col,ClassName,Index
。 Index
这里可能会造成混淆。假设 Row 1 Col 1
有两个 link,你想点击第二个 link,那么 Index
应该是 1
.
我正在尝试在 UFT 中编写脚本,我需要在其中单击 link(始终是 table 中的第一个 link),其标题会动态变化。我尝试以下操作:
Dim obj_ChkDesc
Set obj_ChkDesc=Description.Create
obj_ChkDesc(“Class Name”).value = “Link”
Obj_ChkDesc("name").value="Log in"
Browser().page().link(obj_ChkDesc).click
它不起作用,因为当值更改失败时。 谁能告诉我点击标题动态变化的第一个 link 需要做什么?
提前致谢。
首先,根据你的说法:where i need to click on a link
(Always the first link in the table)
,你不需要使用Obj_ChkDesc("name").value
因为一般来说 name
属性 每个 link 都会不同。通过使用它,您正在专门寻找 link.
您可以简单地使用:
Browser().page().ChildObjects(obj_ChkDesc)(0).Click
另一件事,您还应该在上面的语句中包含 WebTable,否则您最终会覆盖页面中的所有 link,而不仅仅是特定的 table.
有两种方法。
首先,使用Regular Expression
。但它假设 link
名称应遵循一些规则,比如动态 10 位数字,然后您可以使用 [0-9]{10}
作为正则表达式模式。为此,您需要使用 Spy
来捕获此 link,然后将其 属性 像 outerhtml
更改为正则表达式...
另一种方式(我推荐这种方式):既然你提到它是一种WebTable
。有一种方法叫做ChildItem
。假设您要单击的 link 始终位于 Row 1, Col 1
。然后你可以这样写:
'Set Table object
Set TableObj = Browser(...).Page(...).WebTable(...)
'Locate Link
Set LinkObj = TableObj.ChildItem(1,1,"Link",0)
LinkObj.Click
注意这里的参数1,1,"Link",0
意思是Row,Col,ClassName,Index
。 Index
这里可能会造成混淆。假设 Row 1 Col 1
有两个 link,你想点击第二个 link,那么 Index
应该是 1
.