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

Selenium 机器人框架-加载微调器选择器,selenium,robotframework,Selenium,Robotframework,我有一个问题,我必须验证加载微调器是否存在,它在页面上存在大约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 我还尝试了元

我有一个问题,我必须验证加载微调器是否存在,它在页面上存在大约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

我还尝试了
元素应该包含
页面应该包含
,但没有找到定位器。

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

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

您应该使用其中一个关键字来验证元素是否存在,或者-这两个关键字都支持
timeout
参数,以确定等待的时间

之后,最好使用相反的关键字-
等待元素不可见
,以确保微调器消失,然后继续测试

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

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


稍微偏离主题-尝试使用不太僵硬的定位器-此定位器指定从id为“app”的元素到下的绝对路径(一个div子元素,然后是它的第一个div子元素,然后是该元素的第三个div子元素,依此类推)。如果元素结构发生轻微变化,定位器将停止工作(例如,在bug修复中,或重新定位它,或仅使用JS库的HF)。
试着找到一个比目标svg高1-2级的元素-通过一个坚实的类值或唯一的结构,并将其用作锚点。

这两种方法都有效:

验证加载微调器
等待页面包含元素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


我遇到了一个非常类似的问题

请分享您尝试使用的代码。这种检查有很多关键字(元素应该是可见的,页面应该包含的,等等),加上不同的验证策略。@Todor我添加了代码示例,我有TTiedi,它是svg的父div,精确到足以指向它而不是圆?@Nomce我尝试了两种方法,没有结果,是的,svg应该足以成为目标,我已经修复了代码。是的,你是对的。。。我在想别的事。。旋转器现在已验证您应该为其他人提供答案谢谢先生
xpath=//*[@id="app"]/div/div[1]/div[3]/div/div/div/div/*[local-name() = "svg"]