Cómo manejar la ventana emergente de autenticación con Selenium WebDriver usando Java

Resuelto Imen CHOK asked hace 10 años • 0 respuestas

Estoy intentando manejar la ventana emergente de autenticación usando el siguiente código:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.http.phishy-userpass-length", 255);
profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "x.x.x.x");
driver = new FirefoxDriver(profile);
baseUrl="http://" + login + ":" + password + "@" + url;
driver.get(baseUrl + "/");

Cuando ejecuto la prueba, la página muestra la ventana emergente de autenticación y sigue cargándose hasta que hago clic en el botón cancelar. En ese momento, puedo acceder a la página siguiente, esto significa que la autenticación fue exitosa, pero aún así siempre se muestra la ventana emergente de autenticación.

Imen CHOK avatar Jun 19 '14 17:06 Imen CHOK
Aceptado

El método de alerta authenticateUsing()le permite omitir el cuadro de autenticación básica Http .

WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(username, password));

A partir de Selenium 3.4 todavía está en versión beta.

En este momento la implementación sólo se realiza paraInternetExplorerDriver

Prashanth Sams avatar Sep 20 '2014 04:09 Prashanth Sams

No utilice el perfil de Firefox y pruebe el siguiente código:

driver.get("http://UserName:[email protected]");

Si lo está implementando en el navegador IE, hay ciertas cosas que debe hacer.

En caso de que su servidor de autenticación requiera un nombre de usuario con un dominio como "domainuser", deberá agregar una doble barra /a la URL:

//localdomain\user:[email protected]
Raghav Arora avatar Jun 19 '2014 11:06 Raghav Arora

Pruebe la siguiente solución y avíseme en caso de cualquier problema:

driver.get('https://example.com/')
driver.switchTo().alert().sendKeys("username" + Keys.TAB + "password");
driver.switchTo().alert().accept();

Esto me funciona bien

user6939 avatar Mar 15 '2018 09:03 user6939

Me enfrenté a este problema varias veces en mi solicitud.

Generalmente podemos manejar esto con los dos enfoques siguientes.

  1. Pase el nombre de usuario y la contraseña en la propia URL.

  2. Puede crear un script de AutoIT y llamar al script antes de abrir la URL.

Consulte el artículo a continuación en el que mencioné ambas formas:
Manejar la ventana de autenticación/inicio de sesión en Selenium Webdriver

Mukesh Otwani avatar Jul 03 '2015 02:07 Mukesh Otwani

Esto debería funcionar para Firefox utilizando el complemento AutoAuth :

FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("default");
File ffPluginAutoAuth = new File("D:\\autoauth-2.1-fx+fn.xpi");
firefoxProfile.addExtension(ffPluginAutoAuth);
driver = new FirefoxDriver(firefoxProfile);
Ripon Al Wasim avatar Mar 10 '2016 13:03 Ripon Al Wasim