我有一个问题,我必须验证是否存在加载微调器,它在页面上的显示时间约为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 contain
和Page should contain
,但是找不到定位器。
答案 0 :(得分:1)
您应该使用一个用于验证元素是否存在的关键字-Wait Until Element Is Visible或Wait 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
我有一个非常相似的问题