【问题标题】:QTP narrow a list of ChildObjectsQTP 缩小了 ChildObjects 的列表
【发布时间】:2010-07-21 19:58:54
【问题描述】:

[出于保密原因,描述有点捏造以混淆我的真实工作]

我正在对有多个 HTML 项目表的网页进行 QTP 测试。可用的项目有一个可点击的项目#,而那些不活动的项目有一个纯文本的项目#。

如果我有一组这样的 ChildObject:

//This is the set of table rows that contain item numbers, active or not.
objItemRows = Browser("browserX").Page("pageY").ChildObjects("class:=ItemRow") 

QTP 领域中仅选择可点击链接项目#s 的最简单方法是什么?

更新:这里的重点不是选择行本身,而是只选择其中包含项目的行(而不是每个表中的页眉/页脚行)。如果我理解正确,我可以使用 objItemRows.Count 来计算有多少项目(可用和不可用)。然后我可以使用类似的东西

desItemLink = Description.Create
   desItemLink("micclass").value = "Link"
objItemLinks = objItemRows.ChildObjects(desItemLink)

仅获取项目行内的链接?

希望能澄清一些事情,并感谢您的帮助。

【问题讨论】:

  • 我不确定我是否理解您的意思,您能否发布可点击项目的 HTML 而不是不可点击项目的 HTML?
  • 1.呈现的代码不是可执行的 QTP/VBScript 代码。 2. QTP 不会自动将 TD 或 TR 标签映射为 GUI 对象。此外,行和单元格是特定 WebTable 的子级,而不是 Page 对象。

标签: vbscript qtp


【解决方案1】:

我想我已经弄清楚了。

Set desItemLink = description.create
    desItemLink("micclass").value = "Link"
    desItemLink("text").RegularExpression = True
//True, Regex isn't really required in this example, but I just wanted to show it could be used this way
//This next part depends on the format of the item numbers, in my case, it's [0-9]0000[0-9]00[0-9]

For x = 0 to 9
  For y = 0 to 9
    For z = 0 to 9
      strItemLink = x & "0000" & y & "00" & z
      desItemLink("text").value = strItemLink
      Set objItemLink = Browser("browser").Page("page").Link(desItemLink)
      If objItemLink.Exist(0) Then
         //Do stuff
      End If
    Next
  Next
Next

无论如何感谢您的帮助,但上面的代码将遍历具有给定递增格式名称的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2012-07-04
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多