我有一个使用登录表单的Selenium 2测试,然后通过验证页面 Headers 已更改来断言登录成功 .
测试写在 Java/JUnit , WebDriver 和 Fluent Selenium
fwd.title().within(secs(5)).shouldContain(partialTitle);
这些测试适用于Firefox和Chrome . 在Safari上,页面 Headers 仍然是旧的登录页面 Headers .
我们生成的截屏视频显示登录成功后的URL已更改,但 Headers 未更改 .
我认为 SafariDriver
不会在断言之前等待页面加载事件完成 .
2 回答
我有同样的问题!!!我的测试失败,因为 Headers 用于检查测试“步骤” .
用Firefox和Chrome没问题;与Safari这是一个问题!
我发现这个“黑客”有效,但每次“点击”后都需要手动检查 Headers :
我使用GEB SPOCK和safari驱动程序有一个关于隐式/显式等待的"know issue"(参考文献https://code.google.com/p/selenium/issues/detail?id=5860) .
因此,在Safari浏览器上运行make test的一个很好的解决方法是等待页面 Headers :
这将强制驱动程序等待 Headers 更改(超时可配置) .