Pasar objeto de opciones con kwargs de opción en BrowserStack.
Estoy tratando de hacer algo muy fácil con BrowserStack usando selenium y python 3. Digamos que esta es mi capacidad:
caps =
[
{
'os_version': '10',
'os': 'Windows',
'browser': 'chrome',
'browser_version': '96.0',
'name': 'Parallel Test1', # nombre de la prueba
'build': 'browserstack-build-1' # Sus pruebas se organizarán dentro de esta compilación
}
]
Ahora, supongamos que lo único que quiero hacer es visitar Google. Aquí está el código:
driver = webdriver.Remote(command_executor='https://myBrowserStackCode', desired_capabilities=caps[1])
driver.get("https://www.google.com")
driver.quit()
Funciona, pero desired_capabilities
se ha quedado obsoleto y me piden que “pase un objeto Options con el argumento de opciones”. No sé qué significa eso. ¿Debería ir con algo como esto?
opciones = webdriver.ChromeOptions()
¿Cómo se supone que debo pasar caps
entonces? ¿Qué pasa si tuviera más de una capacidad en caps
, cada una con diferentes navegadores?
davy.ai
Para abordar la obsolescencia de
desired_capabilities
, puedes crear un objetoOptions
y pasarlo como argumento de palabra clave al instanciar el controlador. Aquí tienes un ejemplo:En este fragmento de código, primero creamos un objeto
ChromeOptions
y luego recorremos cada par clave-valor encaps
. Para cada par, utilizamos el métodoset_capability
de nuestro objetoChromeOptions
para establecer la capacidad con la clave y el valor correspondientes.Este método se puede adaptar fácilmente para admitir múltiples capacidades. Solo necesitarías definir una lista de diccionarios, donde cada diccionario corresponde a una capacidad independiente. A continuación, iterarías sobre esta lista y crearías un nuevo objeto
ChromeOptions
para cada capacidad. Aquí tienes un ejemplo:En este fragmento de código, definimos una lista de dos capacidades, cada una representada como un diccionario. Luego iteramos sobre esta lista y, para cada capacidad, creamos un nuevo objeto
ChromeOptions
y establecemos sus capacidades. Luego creamos una nueva instancia de controlador remoto utilizando el argumento de palabra claveoptions
, visitamos Google y luego cerramos el controlador.