2017-07-10 2 views
0

Je suis en train d'effectuer une mise à niveau vers Selenium 3 qui a cassé une fonction que j'ai écrite il y a longtemps pour extraire l'OS et le navigateur de l'instance WebDriver.Obtenir des informations sur l'OS et la version du navigateur Firefox dans Selenium 3

Ce utilisé pour obtenir la version du navigateur et le nom OS:

Capabilities cap = ((RemoteWebDriver) driver).getCapabilities(); 
String browserVersion = cap.getVersion(); 
String osName = cap.getPlatform().name().toLowerCase(); 

Il ne fonctionne plus. Je reçois une chaîne vide pour la version du navigateur et «any» pour le nom du système d'exploitation. J'utilise un outil tiers au gestionnaire des pilotes binaires:

<dependency> 
    <groupId>io.github.bonigarcia</groupId> 
    <artifactId>webdrivermanager</artifactId> 
    <version>1.7.0</version> 
</dependency> 

Voilà comment je crée l'instance du pilote:

FirefoxDriverManager.getInstance().setup(); 

    DesiredCapabilities caps = DesiredCapabilities.firefox(); 
    caps.setCapability("acceptInsecureCerts", true); 

    WebDriver driver = new FirefoxDriver(caps); 

    WebDriver.Timeouts timeouts = driver.manage().timeouts(); 
    timeouts.implicitlyWait(5L, TimeUnit.SECONDS); 
    driver.manage().window().maximize(); 

    return driver; 

Ce n'est pas très différent de mon code Sélénium 2. La seule différence est l'utilisation du gestionnaire de pilotes de l'outil tiers, car l'utilisation de Firefox nécessite maintenant geckodriver.

+0

Consultez https://github.com/Ardesco/selenium-standalone-server-plugin – SiKing

Répondre

0

Je compris cela:

Capabilities cap = ((RemoteWebDriver) driver).getCapabilities(); 

    String browserName = cap.getBrowserName(); 
    String browserVersion = (String)cap.getCapability("browserVersion"); 
    String osName = Platform.fromString((String)cap.getCapability("platformName")).name().toLowerCase(); 

    return browserName + browserVersion + "-" + osName; 

Peut-être est le cas que les noms des clés de la plate-forme et la version du navigateur pour les capacités ont changé et ont cassé carte des cette fonctionnalité. Dans tous les cas, je peux maintenant récupérer correctement la version de la plaform et du navigateur.