为robotframework中的页面加载设置超时

时间:2018-12-14 12:20:23

标签: robotframework

当我的测试跨多个页面运行时,我想检查页面加载的响应时间。 如果页面在2秒钟内未加载,则测试应失败。 我正在将Robot Framework与Selenium2Library一起使用,并且每次我使用命令等待页面包含文本2s 时,浏览器将等待页面完全加载,然后运行此命令,此操作无济于事。 可以在机器人框架中的页面加载上设置超时时间吗?

1 个答案:

答案 0 :(得分:0)

默认的selenium行为是在返回控件之前等待页面加载(由js完成的一些ajax调用除外)。因此,在普通的Go To导航调用中,加载完成后,执行将继续-因此Wait Until ...几乎立即通过。
Selenium支持通过desirable_capabilities中的设置来覆盖此行为,但这可能涉及到一点(例如,Firefox的设置称为“ pageLoadStrategy”,例如,值为none / eager / normal)。

虽然这要容易得多-只需使用一个计时器,获取导航前后的时间戳,差异将是整个页面的加载。

${before}=    Get Current Date    result_format=epoch
Go To     https://your-url
${after}=       Get Current Date    result_format=epoch

Should be True    ${after} - ${before} < 2     msg=The total page load time was more than 2 seconds!

关键字Get Current Datethe DateTime standard library中,并且使用参数“ result_format = epoch”调用时,它返回一个浮点数(自1970年以来的秒数)-小数部分是毫秒。 > 通过减去这两个值,您可以获得完整的页面加载时间。