我在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")
答案 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")
请告诉我