当我的测试跨多个页面运行时,我想检查页面加载的响应时间。 如果页面在2秒钟内未加载,则测试应失败。 我正在将Robot Framework与Selenium2Library一起使用,并且每次我使用命令等待页面包含文本2s 时,浏览器将等待页面完全加载,然后运行此命令,此操作无济于事。 可以在机器人框架中的页面加载上设置超时时间吗?
答案 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 Date
在the DateTime standard library中,并且使用参数“ result_format = epoch”调用时,它返回一个浮点数(自1970年以来的秒数)-小数部分是毫秒。 >
通过减去这两个值,您可以获得完整的页面加载时间。