首页 文章

UFT没有点击网表

提问于
浏览
1

我遇到了UFT的问题 . 我有一个网表 . 我录制了webtable,然后将网页表从OR拖到编辑器中 .

然后我修改如下 . 单元格1和单元格2返回正确的数据 . 在细胞内部,我只有文本 .

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

它正在查找webtable并返回数据但不单击该行 . 如何单击Webtable中的第一行?

2 回答

  • 4

    首先,您需要确保webtable的单元格(2,1)中有一个链接 . 为此,检查对象的存在:

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

    如果它返回 True ,那么我们很高兴继续前进 .


    尝试在运行时将 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.
    

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


    如果这不起作用, you can fire the Click Event on the Link object 如下所示:

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

    即使这不起作用,您也可以尝试以下方法(不推荐使用,但如果我们正确地进行计算,它将起作用) . 我们试图找到某个位置 on 该对象并在该位置执行 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.
    
  • 1

    只需通过获取TR元素单击Row

    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
    

相关问题