web-dev-qa-db-fra.com

Obtenir la version du navigateur en utilisant le webdriver Selenium

Comment pourrais-je utiliser la version du navigateur?

>>> from Selenium import webdriver
>>> driver = webdriver.Firefox()
>>> print version <-- how to do this?
    Firefox 12.0
27
David542

La propriété capabilities est un dictionnaire contenant des informations sur le navigateur lui-même, cela devrait donc fonctionner:

print driver.capabilities['version']
27
Matthew Trevor

Cette réponse m'a conduit dans la bonne voie, mais est spécifique à Python et le sujet est plus large. J'ajoute donc une réponse pour Java qui était un peu plus délicate. J'utilise actuellement Selenium 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);
38
Lukus

Cela ne répond peut-être pas tout à fait à la question ci-dessus, mais cela pourrait quand même être utile à ceux qui recherchent un moyen de coder un test en fonction de comportements différents reçus de différents navigateurs (par exemple, Firefox vs Chrome). Je cherchais ceci au moment où je suis tombé sur ce fil, alors j'ai pensé l'ajouter au cas où cela pourrait aider quelqu'un d'autre.

Sur Python, si vous recherchez simplement le navigateur que vous testez (par exemple, Firefox, Chrome, c.-à-d., Etc.), vous pouvez utiliser ...

driver.name

... dans une déclaration si . Cela suppose que vous avez déjà assigné driver au navigateur Web sur lequel vous testez (c'est-à-dire Firefox, Chrome, IE, etc.). Toutefois, si vous êtes chargé de tester plusieurs versions du même navigateur, vous souhaiterez ajouter quelque chose à driver.version . J'espère que cela aide quelqu'un. Je cherchais cette solution lorsque j'ai trouvé ce fil. J'ai donc pensé l'ajouter au cas où quelqu'un d'autre en aurait besoin.

2
rwbyrd

Si vous utilisez Chrome, vous pouvez effectuer les opérations suivantes:

driver.capabilities['version']

Et si vous utilisez Firefox:

driver.capabilities['browserVersion']
2
Illia Abielientsev

Si vous associez votre WebDriver à EventFiring, vous devrez effectuer une implémentation personnalisée de EventFiringWebDriver.

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

}

Je viens de poster parce que c'était un problème que j'ai rencontré.

2
Reverse Tarzan

Répondez simplement à cette question pour les utilisateurs de Python qui souhaitent imprimer toutes les fonctionnalités que je cherchais avant même de le savoir. Sous la commande fonctionne.

print driver.capabilities

1
Kireeti Annamaraj