Неверный заголовок страницы SafarDriver Selenium после загрузки новой страницы

У меня есть тест Selenium 2, который использует форму входа в систему, а затем утверждает, что вход в систему прошел успешно, проверяя, что заголовок страницы изменился.

Тест написан на Java/JUnit, WebDriver и Fluent Selenium.

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

Тесты работают на Firefox и Chrome. В Safari заголовок страницы по-прежнему остается старым заголовком страницы входа.

Созданный нами скринкаст показывает, что URL-адрес после успешного входа в систему изменился, но заголовок остался прежним.

Я думаю, что SafariDriver не ожидает завершения события загрузки страницы перед утверждением.


person Ayub Malik    schedule 18.02.2014    source источник


Ответы (2)


У меня такая же проблема!!! Мой тест не пройден, потому что заголовок используется для проверки теста «Шаг».

С Firefox и Chrome проблем нет; с Safari это проблема!!!

Я нашел этот «хак», который работает, но необходимо вручную проверять заголовок после каждого «клика»:

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);
        }
    });
}   
person ninja    schedule 26.01.2015

Я использую GEB + SPOCK, и с драйвером Safari возникает «известная проблема» о неявном/явном ожидании (ссылка https://code.google.com/p/selenium/issues/detail?id=5860).).

Итак, хороший обходной путь для запуска теста в браузере Safari — дождаться заголовка страницы:

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

Это заставит драйвер ждать смены заголовка (время ожидания настраивается).

person ninja    schedule 29.01.2015