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

时间:2018-08-07 15:03:52

标签: selenium robotframework

我有一个问题,我必须验证是否存在加载微调器,它在页面上的显示时间约为1秒钟,我已经找到了加载微调器的xpath选择器,但硒库找不到另一种方法找出不久后消失的东西的选择器? 注意: xpath绝对正确。加载微调器上也没有ID。

这是我尝试过的代码

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

我也尝试过Element should containPage should contain,但是找不到定位器。

3 个答案:

答案 0 :(得分:1)

您应该使用一个用于验证元素是否存在的关键字-Wait Until Element Is VisibleWait Until Page Contains Element-这两个关键字都支持timeout参数,以等待等待多少时间。

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

定位器存在问题-如果元素为svg,则xpath会出现一些问题,多数情况下它无法直接解决该问题。因此,不要在路径中显式指定它,而是寻找一个名称恰好是“ svg”的节点;例如:

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

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


稍微偏离主题-尝试使用较少的刚性定位符-该定位符指定ID为“ app”的元素的向下绝对路径(一个div子项,然后是其第一个div子项,然后是该人的第三个div子项,依此类推等等)。如果元素结构发生微小变化,定位器将停止工作(例如,在错误修复中或重新定位,或者仅使用JS库的HF)。
尝试找到一个比目标svg高1-2级的元素-通过固定的类值或唯一的结构,然后将其用作锚点。

答案 1 :(得分:0)

我认为您使用了错误的关键字

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

答案 2 :(得分:0)

两项工作:

  

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

  

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

我有一个非常相似的问题