2012-09-23 30 views
21

¿Cómo obtendré la versión del navegador que se está utilizando?Obtener la versión del navegador usando Selenium webdriver

>>> from selenium import webdriver 
>>> driver = webdriver.Firefox() 
>>> print version <-- how to do this? 
    Firefox 12.0 
+0

Desde Firefox versión 48 y adelante puede ver la respuesta [aquí] (https://stackoverflow.com/questions/23887911/how-to-check-firefox-version-when-running-selenium-tests-in- jenkins/47816337 # 47816337) – ArgiesDario

Respuesta

20

La propiedad capabilities es un diccionario que contiene información sobre el propio navegador, por lo que esto debería funcionar:

print driver.capabilities['version'] 
37

Esta respuesta me llevó por el camino correcto, pero es específico de Python y el tema es más ancho. Entonces, estoy agregando una respuesta para Java que fue un poco más complicada. En este momento estoy usando selenio 2.25.0.

//make sure have correct import statements - I had to add these 
import org.openqa.selenium.Capabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 

WebDriver driver = new FirefoxDriver(); 

Capabilities caps = ((RemoteWebDriver) driver).getCapabilities(); 
String browserName = caps.getBrowserName(); 
String browserVersion = caps.getVersion(); 
System.out.println(browserName+" "+browserVersion); 
2

Si su envolviendo su WebDriver para que se EventFiring que tendrá que hacer una implementación EventFiringWebDriver personalizado.

import org.openqa.selenium.Capabilities; 
import org.openqa.selenium.HasCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.events.EventFiringWebDriver; 

public class MyEventFiringWebDriver extends EventFiringWebDriver implements HasCapabilities { 

    private RemoteWebDriver driver; 

    public MyEventFiringWebDriver(RemoteWebDriver driver) { 
     super(driver); 
     this.driver = driver; 
    } 

    @Override 
    public Capabilities getCapabilities() { 
     return driver.getCapabilities(); 
    } 

} 

simple publicación porque era un problema me encontré.

2

Si bien es posible que esto no responda exactamente a la pregunta anterior, esto podría ser útil para alguien que busca una forma de codificar una prueba en función de los diferentes comportamientos que reciben de diferentes navegadores (es decir, Firefox contra Chrome). Estaba buscando esto en el momento en que tropecé con este hilo, así que pensé en agregarlo en caso de que pueda ayudar a alguien más.

En Python, si usted está buscando simplemente el navegador que está probando en (es decir, Firefox, Chrome, es decir, etc ..), entonces se podría usar ...

driver.name 

.. en una declaración if. Esto supone que ya ha asignado controlador al navegador web que está probando (es decir, Firefox, Chrome, IE, etc.). Sin embargo, si tiene la tarea de probar varias versiones del mismo navegador, querrá algo más para driver.version. Espero que esto ayude a alguien. Estaba buscando esta solución cuando encontré este hilo, así que pensé en agregarlo por si alguien más lo necesita.

Cuestiones relacionadas