2012-09-23 16 views
21

Come posso utilizzare la versione del browser?Ottieni la versione del browser utilizzando il selettore web selenio

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

Dalla versione 48 di Firefox e in avanti è possibile visualizzare la risposta [qui] (https://stackoverflow.com/questions/23887911/how-to-check-firefox-version-when-running-selenium-tests-in- Jenkins/47816337 # 47816337) – ArgiesDario

risposta

20

La proprietà capabilities è un dizionario che contiene informazioni sul browser in sé, quindi questo dovrebbe funzionare:

print driver.capabilities['version'] 
37

Questa risposta mi ha portato verso il basso la strada giusta, ma è specifico per python e l'argomento è più ampio. Quindi, sto aggiungendo una risposta per Java che è stata un po 'più complicata. In questo momento sto usando il 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

Se il avvolgendo il WebDriver in modo che sia EventFiring si dovrà fare un'implementazione EventFiringWebDriver personalizzato.

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(); 
    } 

} 

Pubblicare solo perché si è verificato un problema.

2

Mentre questo potrebbe non rispondere alla domanda di cui sopra, questo potrebbe ancora essere utile a qualcuno che cerca un modo per codificare un test in base a comportamenti diversi che ricevono da diversi browser (ad esempio Firefox vs Chrome). Stavo cercando questo nel momento in cui mi sono imbattuto in questo thread, quindi ho pensato di aggiungerlo nel caso in cui potesse aiutare qualcun altro.

su Python, se siete semplicemente alla ricerca per il browser si sta testando su (cioè Firefox, Chrome, vale a dire, ecc ..), allora si potrebbe utilizzare ...

driver.name 

.. in un se l'istruzione. Questo presuppone che tu abbia già assegnato il driver al al browser web su cui stai eseguendo il test (ad esempio Firefox, Chrome, IE, ecc.). Tuttavia, se hai il compito di testare più versioni dello stesso browser, ti consigliamo di aggiungere qualcosa al driver .. Spero che questo aiuti qualcuno fuori. Stavo cercando questa soluzione quando ho trovato questo thread, quindi ho pensato di aggiungerlo nel caso in cui qualcun altro ne avesse bisogno.

Problemi correlati