首页 文章

加载新页面后,SafarDriver Selenium页面 Headers 不正确

提问于
浏览
1

我有一个使用登录表单的Selenium 2测试,然后通过验证页面 Headers 已更改来断言登录成功 .

测试写在 Java/JUnitWebDriverFluent Selenium

fwd.title().within(secs(5)).shouldContain(partialTitle);

这些测试适用于Firefox和Chrome . 在Safari上,页面 Headers 仍然是旧的登录页面 Headers .

我们生成的截屏视频显示登录成功后的URL已更改,但 Headers 未更改 .

我认为 SafariDriver 不会在断言之前等待页面加载事件完成 .

2 回答

  • 1

    我有同样的问题!!!我的测试失败,因为 Headers 用于检查测试“步骤” .

    用Firefox和Chrome没问题;与Safari这是一个问题!

    我发现这个“黑客”有效,但每次“点击”后都需要手动检查 Headers :

    def static void waitForPage(driver, String title) {
        //Hack to make login working on Safari&IE
        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().startsWith(title);
            }
        });
    }
    
  • 0

    我使用GEB SPOCK和safari驱动程序有一个关于隐式/显式等待的"know issue"(参考文献https://code.google.com/p/selenium/issues/detail?id=5860) .

    因此,在Safari浏览器上运行make test的一个很好的解决方法是等待页面 Headers :

    static at = {
         waitFor { title == "Homepage" }
    }
    

    这将强制驱动程序等待 Headers 更改(超时可配置) .

相关问题