我只需要点击特定的单元格(2,1)。我不确定如何点击该单元格。就我而言,它总是同一个单元格。
我有这个代码只读取单元格(2,1)中的值。之后,我该如何点击该单元格?整个单元格是一个链接。我不需要使用for循环来获取价值。我只需要直接点击那个单元格。
myvalue= Browser("aa").Page("aa").WebTable("tb").GetCellData(2,1)
请指教。
更新#1 1
myvalue= Browser("aa").Page("aa").WebTable("tb").GetCellData(2,1)
'值返回" dsfsdf sdfsdfdsf DOB:1/01/2015会员ID:8587"
2我用铬检查了细胞。我明白这一点:
<td class="name" rowspan="1">
<a href="/id/5858"><span></span></a>
<h3>
dsfsdf sdfsdfdsf
</h3>
<table>
<tbody><tr>
<td>DOB:</td>
<td>1/01/2015</td>
</tr>
<tr>
<td>Member ID:</td>
<td>8587</td>
</tr>
</tbody></table>
</td>
我应该首先进入单元格,然后找到链接,然后单击它?我整天研究但没有运气。请指教。
更新#2
这是一个点网页。
set rowObject = Browser("aa").Page("aa").WebTable("tb").Object.getElementsByTagName("tr").item(1)
如果我保留第(1)项,它会按预期点击第二行。索引0是标题。 index 1是第2行。
如果我改为第(2)项,它什么都不做。
如果我改为第(4)项,则点击第3行(索引2)。相反,它应该单击第5行(索引4)。
如果我改为第(5)项,它什么都不做。奇怪的。所以这个答案并不是一贯的。我认为UFT在页面开发方面感到困惑。
我接受了html源代码,然后在本地创建了一个html文件。将所有锚文本从空更改为某些文本:
<a href="/id/5554"><span>id2</span></a>
然后我使用了您发布的原始代码。对于所有行,它的工作正常。
我会联系开发团队,看看他们是否可以添加锚文本,然后应用css来隐藏它。他们很可能不会做任何事情。
我们也可以描述&#34; Link&#34;在这里&#34; a&#34;标签,所以UFT将寻找&#34; a&#34;标记而不是链接文本/锚文本。
set objLink = Browser("aa").Page("aa").WebTable("tb").ChildItem(intRow, intCol, "Link",0)
答案 0 :(得分:1)
使用webTable的 childitem 方法。
尝试类似:
Dim objLink, intRow, intCol
intRow = 2
intCol = 1
set objLink = Browser("aa").Page("aa").WebTable("tb").ChildItem(intRow, intCol, "Link",0)
if objLink.exists(3) then
objLink.Click
end if
更新2:
由于webtable单元格内的链接没有任何与之关联的文本,因此UFT无法使用ChildItem
方法找到它。这也可以使用网络表的ChildItemCount
方法进行验证。因此,我们现在需要使用对象的本机方法,如下所示:
set rowObject = Browser("aa").Page("aa").WebTable("tb").Object.getElementsByTagName("tr").item(1) 'HERE item(1) means the 2nd item or 2nd row. It is a zero-based index, hence for 2nd row, we write index=1
set colObject = rowObject.getElementsByTagName("td").item(0) 'item(0) means 1st item or 1st column as it is a zero based index
Set collectionLinks = colObject.getElementsByTagName("a") 'getting a collection of all the links present inside cell(2,1)
collectionLinks.item(0).Click 'item(0) means the 1st link in the cell(2,1)
答案 1 :(得分:0)
尝试以下子程序。
注意:您应该知道要单击的对象的索引值。尝试使用Object Spy来了解项目的索引。如果设置了错误的索引,则可能无法单击所需的元素。
Sub ClickWebTableIndex(BrowserPropertyName, BrowserPropertyValue, PagePropertyName, PagePropertyValue, WebTablePropertyName, WebTablePropertyValue, ChildObjectClassName, ChildObjectPropertyName, ChildObjectPropertyValue, IndexValue)
Set oBrowser = Description.Create()
oBrowser("micclass").Value = "Browser"
oBrowser(BrowserPropertyName).Value = BrowserPropertyValue
Set oPage = Description.Create()
oPage("micclass").Value = "Page"
oPage(PagePropertyName).Value = PagePropertyValue
Set oWebTable = Description.Create()
oWebTable("micclass").Value = "WebTable"
oWebTable(WebTablePropertyName).Value = WebTablePropertyValue
Set childObject = Description.Create
childObject("micclass").value = ChildObjectClassName
childObject(ChildObjectPropertyName).value = ChildObjectPropertyValue
Browser(oBrowser).Page(oPage).WebTable(oWebTable).ChildObjects(childObject)(IndexValue).FireEvent "OnClick"
End Sub