单击标题动态变化的网页上的 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,IndexIndex 这里可能会造成混淆。假设 Row 1 Col 1 有两个 link,你想点击第二个 link,那么 Index 应该是 1.