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

时间:2014-02-18 17:46:37

标签: selenium junit selenium-webdriver pageload safaridriver

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

测试用 Java / JUnit WebDriver Fluent Selenium

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

测试适用于Firefox和Chrome。 在Safari上,页面标题仍然是旧的登录页面标题。

我们生成的截屏视频显示成功登录后的网址已更改,但标题未更改。

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

2 个答案:

答案 0 :(得分:1)

我有同样的问题!!! 我的测试失败,因为标题用于检查测试"步骤"。

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

我发现了这个" hack"这项工作,但在每次"点击"之后手动检查标题是必要的:

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);
        }
    });
}   

答案 1 :(得分:0)

我使用GEB + SPOCK和safari驱动程序有一个&#34;已知的问题&#34;关于隐式/显式等待(参考https://code.google.com/p/selenium/issues/detail?id=5860)。

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

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

这会强制驱动程序等到标题更改(超时可配置)。