El método getTitle () devuelve el título de la página actual con Chrome pero devuelve el título de la página anterior con Firefox usando Selenium a través de Java

Necesito verificar el título de una página web después de iniciar sesión. Usando el controlador de Chrome para el selenio, el título de la página después de iniciar sesión es correcto, pero no el controlador de Firefox. El resto del código sigue siendo el mismo, solo se cambió el controlador de Chrome a 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");
    }
}

Con el controlador de Chrome, este código devuelve "Es la página de inicio correcta después de iniciar sesión" y con el controlador de Firefox, este código devuelve "La página después de iniciar sesión no es la deseada", ya que getTitle devuelve el título de la página de inicio de sesión, no después de iniciar sesión.

Respuesta 1

Un navegador diferente representa el DOM HTML de una manera diferente. Puede encontrar una discusión relevante en Chrome y Firefox en Windows vs Linux (selenio). En este punto vale la pena mencionar que:

  • ChromeDriver / Chrome se basa en el dialecto OSS .
  • GeckoDriver / Firefox se basa en el dialecto W3C .

Parece en su caso de uso :

  • Al usar ChromeDriver / Chrome , el título de la página ya se representa en el árbol DOM cuando se alcanza el tiempo igual a .document.readyState complete

  • Sin embargo, durante el uso de GeckoDriver / Firefox , el título de la página es no emitida dentro del árbol DOM por el momento es igual a la que se alcanza.document.readyState complete

Solución

Debe inducir a WebDriverWait para que contenga el título y puede usar la siguiente solución:

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");
}
Respuesta: 2

¿Necesita devolver objetos diferentes en el mismo método? ¿Es posible devolver? public class Smoketest () {objeto protegido getLabTopology () {if (labTopology == null) {...

He creado el Servicio en Android y se está ejecutando cuando voy a MapActivity. Si regreso de MapActivity con el botón Atrás, quiero detener el servicio. ¿como hacer eso?

Estoy creando código para ayudarme con la tarea, pero hay un problema con la clase 'C'. Me sigue dando salida de NaN, ¿puedes mirarlo y decirme qué estoy haciendo mal? Lo reviso dos veces y ...

Tengo un campo RadioGroupFieldEditor en mi clase. Quiero establecer los valores de defualt. Es posible.