【问题标题】:How to handle page loading scenarios where page loading icon displays randomly?如何处理页面加载图标随机显示的页面加载场景?
【发布时间】:2018-03-19 01:26:01
【问题描述】:

我单击了网页中的编辑按钮并验证了不会一直显示的页面加载符号。页面加载后,加载符号将消失,我的下一个屏幕将显示提交按钮。

以下脚本有效,当点击编辑按钮后显示页面加载符号时。

Click Element     ${EditButton}
${Status}=    Run Keyword And Return Status    Element Should Be Visible    ${Loading_Icon}
Run Keyword If    '${Status}'=='True'     Wait Until Keyword Succeeds     20s     1s    Element Should Not Be Visible      ${Loading_Icon}
Click Element    ${SubmitButton}

当点击编辑按钮后没有显示页面加载符号时,我的脚本等待大约 15 - 20 秒,然后它点击提交按钮。但是,它实际上应该在加载图标不显示时立即单击提交按钮。

当我检查日志时,以下行需要 16 秒才能执行:

 ${Status}=    Run Keyword And Return Status    Element Should Be Visible    ${Loading_Icon}

为什么需要 16 秒?类似的等待相关脚本,增加了整体自动化测试执行时间。

如何克服它?是否有任何替代方法来处理加载图标随机显示的页面加载场景。

【问题讨论】:

  • 您是否设置了任何等待时间,例如隐式等待设置?
  • 不,我没有设置任何等待。
  • @Kootstra 我尝试模拟这种情况。当预期的元素(即本例中的加载图标)不全部存在时,它会等待大约 15 秒。我们是否有任何替代关键字而不是“运行”关键字和返回状态'来获取状态?

标签: robotframework


【解决方案1】:
 ${Status}=    Run Keyword And Return Status    Element Should Be Visible    ${Loading_Icon}

在上述声明中,等待时间的原因是由于默认超时(即 15 秒)。您可以通过在此行之前添加隐式等待关键字来更改它,如下所示

${Orig_Wait}=    Set Selenium Implicit Wait    3 seconds
${Status}=    Run Keyword And Return Status    Element Should Be Visible    ${Loading_Icon}
Set Selenium Implicit Wait    ${Orig_Wait}

以上脚本执行以下操作:

将隐式等待时间设置为 3 秒。现在,加载图标的状态将在 3 秒内返回,而不是 15 秒。然后,它设置回默认超时

【讨论】:

    【解决方案2】:

    与其等待加载动画消失,不如尝试等待提交按钮出现。像这样的:

    Click Element     ${EditButton}
    Wait Until Page Contains Element    ${SubmitButton}    20s
    Click Element    ${SubmitButton}
    

    希望这会有所帮助! :)

    【讨论】:

      猜你喜欢
      • 2017-11-26
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多