Метод getTitle () возвращает заголовок текущей страницы в Chrome, но возвращает заголовок предыдущей страницы в Firefox, используя Selenium через Java - PullRequest
1 голос
/ 31 марта 2019

Мне нужно подтвердить заголовок веб-страницы после того, как войдите в систему.Используя Chrome Driver для selenium, заголовок страницы после входа в систему корректен, но не драйвер Firefox.Остальной код остается тем же, только драйвер был изменен с Chrome на Firefox.

public void verifyLoginPage()
{
    String homepage= "Guru99 Bank Manager HomePage";

    if (driver.getTitle().equals(homepage))
    {
        System.out.println("Its the correct Homepage after Login");
    }
    else
    {
        System.out.println("Page after login is not the intended one");
    }
}

С драйвером Chrome этот код возвращает «Это правильная домашняя страница после входа в систему», а с драйвером Firefox этот код возвращает «Страница послелогин не предназначен ", так как getTitle возвращает заголовок страницы логина, а не после логина.

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Другой браузер отображает HTML DOM по-другому. Соответствующее обсуждение можно найти в Chrome & Firefox для Windows против Linux (селен) . На данный момент стоит упомянуть, что:

  • ChromeDriver / Chrome основан на диалекте OSS .
  • GeckoDriver / Firefox основан на диалекте W3C .

Кажется, в вашем варианте использования :

  • При использовании ChromeDriver / Chrome заголовок страницы уже визуализируется в дереве DOM к тому времени document.readyState равно complete достигнуто.

  • Но при использовании GeckoDriver / Firefox заголовок страницы равен , а не , отображаемому в дереве DOM ко времени достижения document.readyState равно complete.

Решение

Вам нужно заставить WebDriverWait , чтобы заголовок содержал , и вы можете использовать следующее решение:

public void verifyLoginPage()
{
    new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("Guru99");
    String homepage= "Guru99 Bank Manager HomePage";
    if (driver.getTitle().equalsIgnoreCase(homepage))
        System.out.println("Its the correct Homepage after Login");
    else
        System.out.println("Page after login is not the intended one");
}
1 голос
/ 31 марта 2019

Можете ли вы попробовать выполнить приведенный ниже код и узнать, работает ли он.

После того, как вы откроете драйвер chrome или Firefox, после этого, пожалуйста, добавьте ниже код и посмотрите -

driver.manage().timeouts().implicitlyWait(10
driver.navigate().to("http://sitename.com");
String actualTitle = driver.getTitle();
driver.manage().window().maximize();
String expectedTitle = "page title to be verified";
if(actualTitle.equalsIgnoreCase(expectedTitle))
System.out.println("Title Matched");
else
System.out.println("Title didn't match");
driver.close();
driver.quit();
...