1

我使用 Selenium2Library 进行的 Robot Framework 测试偶尔会在等待浏览器页面完全加载服务器响应时卡住,这会导致测试有时无限期挂起。在我遇到的大多数情况下,浏览器已经加载了 99% 的内容并且可以正常交互。但是,在浏览器加载完全停止之前,自动化不会继续进行。

当我看到自动化测试运行并遇到此浏览器挂起问题时,如果我手动按下浏览器“停止”按钮,浏览器将停止加载,自动化测试会正常恢复。我想在浏览器挂起但不让它在浏览器按预期加载时减慢测试的情况下自动停止浏览器。

我看到 Python 中有一个名为 Selenium Webdriver 命令的命令,set_page_load_timeout()如果我能弄清楚如何在 Robot Framework 中使用它,它可能就是我正在寻找的东西。

我一直在研究的另一个选项是执行 javascript 来强制停止浏览器加载,如下所示:

***Keywords***
Stop browser load
    Execute Javascript    return window.stop();

然而,对于像上面这样的命令,问题在于如何实现它并识别浏览器加载时间过长。我不想在每次加载新页面或单击链接时设置不必要的超时,因为这会导致测试的整体运行速度变慢。

Robot Framework 的 Selenium2Library 是否已经内置了类似的东西,您可以在其中设置服务器响应的实际页面加载时间,以便测试可以识别浏览器何时仍处于加载状态?我一直在查看Selenium2Library 文档,但没有发现任何与此直接相关的内容。

任何帮助将不胜感激,谢谢。

4

1 回答 1

0

您可以使用 Robotframework 超时。您可以在设置或关键字中设置超时。

在关键字中:

*** Keywords ***
Timed Keyword
    [Documentation]    Set only the timeout value and not the custom message.
    [Timeout]    1 minute 42 seconds
    Do Something
    Do Something Else


在设置中:

*** Settings ***
Test Timeout    5 seconds
于 2016-10-11T09:50:11.313 回答