【问题标题】:Robot Framework- Loading Spinner selectorRobot Framework-加载微调器选择器
【发布时间】:2018-08-07 15:03:51
【问题描述】:

我有这个问题,我必须验证是否存在加载微调器,它在页面上存在大约 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 containPage should contain,但找不到定位器。

【问题讨论】:

  • 请分享您尝试使用的代码。这种检查有很多关键字(元素应该可见,页面应该包含等),以及不同的策略来进行验证。
  • @Todor 我已添加我已绑定的代码示例
  • svg 的父 div 是否足够精确以定位它而不是圆?
  • @Nomce 我已经尝试了两种方法,没有结果,是的 svg 应该足以定位,我已经修复了代码。
  • 是的,你是对的......我在想别的东西......微调器现在已验证您应该为其他人提供答案,谢谢先生

标签: selenium robotframework


【解决方案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 级的元素 - 通过一个可靠的类值或独特的结构,并将其用作锚。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      两者都有效:

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

      我有一个非常相似的问题

      【讨论】:

        猜你喜欢
        • 2018-06-05
        • 1970-01-01
        • 2016-04-17
        • 1970-01-01
        • 2023-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多