首页 文章

Robot Framework Selenium2Library - 如何阻止服务器响应上挂起的浏览器页面

提问于
浏览
1

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

当我看到自动化测试运行并遇到此浏览器挂起问题时,如果我手动按浏览器“停止”按钮,浏览器将停止加载并自动测试恢复正常 . 我希望在浏览器挂起的情况下自动执行此浏览器停止,但在浏览器按预期加载时不要让测试速度变慢 .

我看到在Python中有一个名为 set_page_load_timeout() 的Selenium Webdriver命令,如果我能弄清楚如何在Robot Framework中使用它,它看起来可能就像我正在寻找的那样 .

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

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

但是,使用上面的命令,问题就是如何实现它并识别浏览器加载时间过长 . 我不希望每次加载新页面或点击链接时都设置不必要的超时,因为这会导致测试的整体运行速度变慢 .

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

非常感谢任何帮助,谢谢 .

1 回答

  • 0

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

    In Keyword:

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

    In Settings:

    *** Settings ***
    Test Timeout    5 seconds
    

相关问题