Cómo enviar la autenticación HTTP con el controlador de web Selenium python-binding

Estoy usando Selenium python binding para configurar una prueba de automatización para nuestra aplicación web. Estoy enfrentando un problema al probar la web en el servidor beta porque requiere autenticación HTTP para un nombre de usuario y contraseña de intranet.

from selenium import webdriver driver = webdriver.Firefox() driver.get("https://somewebsite.com/") 

Necesito enviar un nombre de usuario y una contraseña para el cuadro de diálogo emergente al acceder a http://somewebsite.com/

¿Hay una manera limpia de hacer esto?

He encontrado una solución a esta pregunta:

 from selenium import webdriver profile = webdriver.FirefoxProfile() profile.set_preference('network.http.phishy-userpass-length', 255) driver = webdriver.Firefox(firefox_profile=profile) driver.get("https://username:password@somewebsite.com/") 

La parte de FirefoxProfile es descartar el cuadro de diálogo de confirmación porque, de forma predeterminada, Firefox mostrará un cuadro de diálogo emergente para evitar la desaparición.

Otra solución:

inicie sesión con las solicitudes de Python, obtenga las cookies e inserte las cookies en el navegador de Selenium

import requests from selenium import webdriver from requests.auth import HTTPBasicAuth session = requests.Session() www_request = session.get('http://example.com', auth=HTTPBasicAuth('username','password'), allow_redirects=False) driver = webdriver.Remote(...) #chrome needed to open the page before add the cookies driver.get('http://example.com') cookies = session.cookies.get_dict() for key in cookies: driver.add_cookie({'name': key, 'value': cookies[key]}) driver.get('http://example.com')
import requests from selenium import webdriver from requests.auth import HTTPBasicAuth session = requests.Session() www_request = session.get('http://example.com', auth=HTTPBasicAuth('username','password'), allow_redirects=False) driver = webdriver.Remote(...) #chrome needed to open the page before add the cookies driver.get('http://example.com') cookies = session.cookies.get_dict() for key in cookies: driver.add_cookie({'name': key, 'value': cookies[key]}) driver.get('http://example.com')