代码之家  ›  专栏  ›  技术社区  ›  AutoTester213

机器人框架-加载微调器选择器

  •  0
  • AutoTester213  · 技术社区  · 6 年前

    我有一个问题,我必须验证加载微调器是否存在,它在页面上出现了大约1秒,我找到了加载微调器的xpath选择器,但是selenium库找不到,有没有其他方法可以找到某个选择器,该选择器在很短一段时间后就会消失? 注: xpath绝对正确。加载微调器上也没有id。

    这是我试过的密码

    Validate Loading Spinner
        Wait until page contains  xpath=//*[@id="app"]/div/div[1]/div[3]/div/div/div/div/svg
    

    我也试过 Element should contain Page should contain 但那找不到定位器。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Todor Minakov    6 年前

    您应该使用验证元素是否存在的关键字之一- Wait Until Element Is Visible ,或 Wait Until Page Contains Element -两者都支持 timeout 争论,等待多少。

    之后,你最好使用相反的关键字- Wait Until Element Is Not Visible ,以确保微调器消失,并且可以继续测试。

    定位器有问题-如果元素是 svg ,大多数情况下它不能直接寻址。因此,与其在路径中显式地指定它,不如查找名称恰好为“svg”的节点;例如:

    xpath=//*[@id="app"]/div/div[1]/div[3]/div/div/div/div/*[local-name() = "svg"]
    

    (^更改了路径中的最后一个元素)


    稍微偏离主题-尝试使用不那么严格的定位器-这个选项指定从id为“app”和down的元素的绝对路径(div子元素,然后是第一个div子元素,然后是第三个div子元素,等等)。如果元素结构稍有改变,定位器将停止工作(例如,在错误修复中,或者重新定位它,或者仅仅使用JS库的HF)。
    试着找到一个比目标svg高1-2个级别的元素(通过一个可靠的类值或唯一的结构),并将其用作锚定。

        2
  •  0
  •   Lubos Jerabek    6 年前

    我想你用错了关键字

    Validate Loading Spinner
        Wait until page contains ELEMENT  xpath=//*[@id="app"]/div/div[1]/div[3]/div/div/div/div/svg
    
        3
  •  0
  •   KeithMc18    6 年前

    两项工作:

    验证加载微调器
    等待页面包含元素xpath=//* [@id=“app”]/div/div[1]/div[3]/div/div/div/div/*[local-name()=“svg”]

    等到页面包含元素xpath=//*[@id=“app”]/div/div[1]/div[3]/div/div/div/div/svg

    我也有类似的问题