UFT 未在 Web 表中单击

UFT does not click in the webtable

我遇到 UFT 问题。我有一个网络表。我记录了webtable,然后将webtable从OR拖到编辑器中。

然后我修改如下。单元格 1 和单元格 2 return 正确的数据。在单元格中,我只有文本。

cell1 = Browser("Create").Page("Create").WebTable("First").GetCellData(2,1)
print cell1
cell2 = Browser("Create").Page("Create").WebTable("First").GetCellData(3,1)
print cell2

Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "WebElement",0).click

set objLink =Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "WebElement",0)
objLink.Click

set objLink =Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "Link",0)
objLink.Click

它正在查找 Web 表并 return 正在处理数据,但没有单击该行。如何单击网络表格中的第一行?

首先,你需要确定webtable的cell(2,1)里面有一个link。为此,检查对象是否存在:

set objLink =Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "Link",0)
msgbox objLink.Exist(2)

如果returnsTrue,那我们就可以继续前进了。


尝试在运行时将 ReplayType 设置更改为 2,如下所示:

set objLink =Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "Link",0)
setting.webpackage("replayType") = 2      'Runs mouse operations using the mouse. It will move the mouse pointer physically to the position where click will be performed
objLink.highlight
objLink.click
setting.webpackage("replayType") = 1      'Changing back to Event. Runs mouse operations using browser events.

您还可以从此处手动更改重播类型设置:工具 > 选项 > Gui 测试 > 网络 > 高级 > 运行 设置 > 重播类型


如果这不起作用,您可以在 Link 对象上触发点击事件,如下所示:

set objLink = Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "Link",0)
objLink.highlight
objLink.fireevent "onclick"

即使不行,你也可以试试下面的方法(虽然不推荐,但是如果我们计算正确的话,还是可以的)。我们尝试在对象的某处找到位置,并在该位置执行MouseClick操作。

set objLink = Browser("Create").Page("Create").WebTable("First").ChildItem(2, 1, "Link",0)
objLink.highlight

Set mobj = CreateObject("Mercury.DeviceReplay")
x = objLink.getRoProperty("abs_x")              'x-axis: Returns the position in pixels from the Top left corner of your monitor screen(not the parent object)
y = objLink.getRoProperty("abs_y")              'y-axis: Returns the position in pixels from the Top left corner of your monitor screen(not the parent object)
h = objLink.getRoProperty("height")             'returns height of the link object in pixels
w = objLink.getRoProperty("width")              'returns width of the link object in pixels

mobj.MouseClick Cint(x+h/4),Cint(y+w/4),1       'Try playing with the denominator 4. If you set it 2, it will attempt to click on the middle of the object.

获取TR元素点击行

RowNum=1 'The Row Number you want to click

'if the event handled over TR element then use without Replaytype =2
     Browser("Create").Page("Create").WebTable("First").WebElement("Html tag:=TR","Index:=" & RowNum-1).Click

'otherwise use with ReplayType = 2
     Setting.WebPackage("ReplayType") = 2
     Browser("Create").Page("Create").WebTable("First").WebElement("Html tag:=TR","Index:=" & RowNum-1).Click