在QTP中标识WebTable / WebGrid对象

时间:2014-01-25 04:54:09

标签: vbscript qtp webgrid hp-uft

我在html中为WebTable(Web Grid)提供了以下代码。

<table width="90%">
  <div class="greybox" style="margin-top:2%;">
    <table class="datagrid" width ="100%">....<table>
  </div>
</table>

我尝试在描述性编程中提供完全相同(所有)的属性,但是QTP没有识别Web元素(DIV)。有没有一种独特的方法来识别这个?

注意:网页是单页应用程序开发的

修改

所以我认为我已用下面的代码解决了这个问题。在没有“Unique Text”if子句的情况下识别出两个对象。第一个对象是DIV对象的父对象,因此必须使用第一个对象中的“唯一文本”,该对象不属于任何其他对象。我目前正在尝试使用不同的数据来查看它是否正常工作

Browsername = Browser("micClass:=Browser").GetROProperty("name")
Pagename = Browser("micClass:=Browser").Page("micClass:=Page").GetROProperty("name")

Set desc = Description.Create()
desc("micclass").Value = "Webelement"

Set ChildObject=Browser("name:="&BrowserName).Page("name:="&PageName).ChildObjects(desc)

Set Child_Table_Value = nothing

For i=0 to ChildObject.Count-1
  innerhtmlvalue = ChildObject(i).GetRoproperty("innerhtml")
  htmltag = ChildObject(i).GetRoproperty("micclass")

  if(Instr(innerhtmlvalue, "MARGIN-TOP: 2%")<>0) then 
    if(Instr(innerhtmlvalue, "UniqueText")=0) then
      if(Instr(htmltag, "WebElement")<>0) then
        Set Child_Table_Value  = ChildObject(i)
      End If
    End If
  End IF
Next

Set Table_Value = Child_Table_Value.WebTable("html tag:=Table")

2 个答案:

答案 0 :(得分:1)

好的,假设你有一个像这样的HTML结构:

<table width="90%">
  <tr>
    <td>
      <div class="greybox" style="margin-top:2%;">
        <table class="datagrid" width="100%">
          <tr>
            <td>UniqueText</td>
          </tr>
        </table>
      </div>
    </td>
  </tr>
</table>

...根据您当前的解决方案,您可以依赖&#34; UniqueText&#34;存在,然后您可以尝试以下XPath语句:

(//table[contains(., 'UniqueText')])[last()]

所以在QTP / UFT中你会这样做:

Browser("micClass:=Browser").Page("micClass:=Page").WebTable("xpath:=(//table[contains(., 'UniqueText')])[last()]")

答案 1 :(得分:0)

尝试使用如下所示。(尝试使用“class”识别div块)

Browser("micClass:=Browser").Page("micClass:=Page").Webelement("class:=greybox").Webtable("class:=datagrid")

请告诉我