107 votes

Selenium 2.53 ne fonctionne pas sur Firefox 47

Je reçois une erreur lors de l'utilisation de Firefox avec WebDriver.

 org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
 
  • Version de Firefox: 47.0
  • Sélénium: 2.53.0
  • Windows 10 64 bits

Quelqu'un at-il un problème similaire ou une idée de la solution à ce problème? Cela fonctionne bien avec Chrome, mais avec Firefox, aucune des URL n'est chargée.

93voto

Boni García Points 2982

Malheureusement Selenium WebDriver 2.53.0 n'est pas compatible avec Firefox 47.0. Le WebDriver composant qui s'occupe de Firefox (FirefoxDriver) sera supprimée. À partir de la version 3.0, Selenium WebDriver aurez besoin de l' geckodriver binaire pour gérer Firefox navigateurs. Plus d'infos ici et ici.

Par conséquent, afin d'utiliser Firefox 47.0 comme navigateur avec Selenium WebDriver 2.53.0, vous devez télécharger le Firefox pilote (qui est un fichier binaire appelé geckodriver à partir de la version 0.8.0, et anciennement wires) et de l'exporter son chemin d'accès absolu à la variable webdriver.gecko.driver comme un système de propriété dans votre code Java:

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

Heureusement, la bibliothèque WebDriverManager peut faire ce travail pour vous, c'est à dire de télécharger la bonne Marionnette binaire pour votre machine (Linux, Mac ou Windows) et exportation et la valeur du système de la propriété. Pour utiliser cette bibliothèque, vous devez inclure cette dépendance dans votre projet:

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

... et puis d'exécuter cette ligne dans votre programme avant de l'utiliser WebDriver:

WebDriverManager.firefoxdriver().setup();

Une course complète exemple de JUnit 4 cas de test à l'aide de WebDriver pourrait être comme suit:

public class FirefoxTest {

    protected WebDriver driver;

    @BeforeClass
    public static void setupClass() {
        WebDriverManager.firefoxdriver().setup();
    }

    @Before
    public void setupTest() {
        driver = new FirefoxDriver();
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void test() {
        // Your test code here
    }
}

Prendre en compte le fait que la Marionnette sera la seule option pour le futur (pour WebDriver 3+ et Firefox 48+), mais à l'heure actuelle (version 0.9.0 au temps d'écriture) n'est pas très stable. Jetez un oeil à la Marionnette de la feuille de route pour plus de détails.

Mise à JOUR

Selenium WebDriver 2.53.1 a été publié le 30 juin 2016. FirefoxDriver est de travailler à nouveau avec Firefox 47.0.1 comme navigateur.

18voto

Mahbub Rahman Points 603

Essayez d’utiliser firefox 46.0.1. Il correspond le mieux avec Selenium 2.53

 https://ftp.mozilla.org/pub/firefox/releases/46.0.1/win64/en-US/
 

10voto

el n00b Points 325

J'ai eu le même problème et a découvert que vous devez changer de pilotes, car le soutien a été abandonné. Au lieu d'utiliser Firefox Pilote, vous devez utiliser la Marionnette Pilote pour l'exécution de vos tests. Je suis actuellement en train de travailler à travers le programme d'installation de moi-même et peux poster quelques étapes si vous souhaitez quand j'ai un exemple qui fonctionne.

Voici les étapes que j'ai suivi pour le faire fonctionner sur mon environnement Java sur Mac (qui a travaillé pour moi dans mes installations de Linux (Fedora, CentOS et Ubuntu) en tant que bien):

  1. Télécharger le nuit exécutable à partir de l' communiqués de page
  2. Décompressez l'archive
  3. Créer un répertoire pour la Marionnette (c'est à dire, mkdir -p /opt/marionette)
  4. Déplacer l'déballé fichier exécutable dans le répertoire que vous faites
  5. Mise à jour de votre $PATH d'inclure le fichier exécutable (également modifier votre .bash_profile si vous voulez)
  6. :bangbang: assurez-vous d' chmod +x /opt/marionette/wires-x.x.x alors qu'il est exécutable
  7. Dans votre lancer, assurez-vous d'utiliser le code suivant ci-dessous (c'est ce que j'ai utilisé sur Mac)

Note Rapide

Ne fonctionne toujours pas comme prévu, mais au moins obtient le navigateur lancé maintenant. Besoin de comprendre pourquoi, aujourd'hui, il semble que j'ai besoin de réécrire mes essais pour le faire fonctionner.

L'Extrait De Code Java

WebDriver browser = new MarionetteDriver();
System.setProperty("webdriver.gecko.driver", "/opt/marionette/wires-0.7.1-OSX");

6voto

Dan Caddigan Points 454

Si vous êtes sur mac OSX à l'aide de Homebrew, vous pouvez installer les anciennes versions de Firefox via brew fût:

brew tap goldcaddy77/firefox
brew cask install firefox-46 # or whatever version you want

Après l'installation, vous aurez juste besoin de renommer vos FF exécutable dans le répertoire Applications pour "Firefox".

Plus d'informations peuvent être trouvées à l'repo git homebrew-firefox. Accessoires pour smclernon pour la création de l' original brut de fût.

6voto

De G Points 848

Si vous êtes sur un Mac, brew install geckodriver et c'est parti!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X