geckodriver.exe pas dans le répertoire courant ou variable de chemin d'accès, le Sélénium 2.53.1 + Firefox 48 + Sélénium, Bêta 3

a vu beaucoup de questions concernant le sélénium 2.53.1 et le Firefox 47.0.1, mais aucune En ce qui concerne la libération de bêta de sélénium 3. J'essaie d'utiliser les nouveaux webdrivers Gecko / marionette Firefox, mais même si j'ai l'emplacement du pilote dans; mon chemin d'environnement, Firefox installer le dossier dans les programmes, et donner l'emplacement du lecteur dans l'environnement du système, il ne fonctionnera toujours pas correctement.

erreur:

Le geckodriver.exe n'existe pas dans le répertoire courant ou dans un répertoire à la variable d'environnement PATH. Le pilote peut être téléchargé à https://github.com/mozilla/geckodriver/releases .

utilisant:

  • Sélénium 2.53.1 serveur
  • Firefox 48
  • Sélénium 3 Beta Dll
  • Fenêtre 10

Exemple De Code 1

    using OpenQA.Selenium.Firefox;

    public static class FirefoxInitialise
    {
         public static IWebDriver Driver {get; set;}

         Driver = new FirefoxDriver();
    }

a également tenté ce qui suit:

    using OpenQA.Selenium.Firefox;

    public static class FirefoxInitialise
    {
         public static IWebDriver Driver {get; set;}

         FirefoxDriverServices service = FirefoxDriverService.CreateDefaultService();
         service.FirefoxBinaryPath = @"C:Program FilesMozilla Firefoxfirefox.exe";
         FirefoxOptions options = new FirefoxOptions();
         TimeSpan time = TimeSpan.FromSeconds(10);
         Driver = new FirefoxDriver(service, options, time);
    }

toute aide ou idée quant à la raison pour laquelle le code ne détecte toujours pas ce pilote serait grandement apprécié.

21
demandé sur SeanS 2016-08-18 13:42:45

9 réponses

essayez de mettre le geckodriver.exe sur votre chemin: C:\Users\YourName\Documents\Visual Studio 2013\Projects\seleniump\seleniump\bin\Debug

vous pouvez trouver geckodriver.exe sur ce lien:

https://github.com/mozilla/geckodriver/releases

23
répondu vdus 2018-06-05 20:45:03

installez le sélénium.Firefox.Webdriver paquet NuGet.

cela copiera geckodriver.exe au dossier bin.

15
répondu Hans Vonn 2017-06-22 14:35:40

Cette solution peut vous aide à résoudre le problème: ( Ça m'a aidé quand même)

public class TestResult {

    private IWebDriver driver;
    private StringBuilder verificationErrors;
    private string baseURL;
    private bool acceptNextAlert = true;

    [TestInitialize]
    public void SetupTest() {
        FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:\geckodriver", "geckodriver.exe");
        service.Port = 64444;
        service.FirefoxBinaryPath = @"C:\Program Files (x86)\Firefox Developer Edition\firefox.exe";
        driver = new FirefoxDriver(service);
        baseURL = "http://localhost:49539";
        verificationErrors = new StringBuilder();
    }
}
RÉFÉRENCE
7
répondu Angus Wu 2017-05-23 11:33:26

si u inclure le geckodriver.exe dans votre projet et vous le copier dans votre répertoire cible lors de la compilation, le webdriver fonctionne comme dans les versions précédentes.

4
répondu Chalmette 2016-09-13 12:00:15

c'est pour qui est le begginers ill écrire la version courte dans le ci-dessous après ce post :) La manière la plus facile tout d'abord, vous devez télécharger tous les pilotes ce que le navigateur vous utilisez et extraire tous les pilotes dans par exemple C:\Selenium\ là et aller à VisualStudio et d'ici Ajouter Selenium packages montré sur les photos Cliquez ici en console écrivez ce code PM> Install-Package Selenium.WebDriver après cela, copiez votre répertoire de pilotes et de windows recherche tab type variables et sélectionnez (Éditer l'environnement du système et des variables) shown pic2 dans cette fenêtre, vous aurez avancé onglet au dessous de cliquer Variables d'environnement... ici, vous avez System variables "1519140920 de la section" trouver PATH or Path Variable et éditer il soit prudent don't delete it!! prochain clic nouveau - coller répertoire des pilotes et cliquez sur tous windws OK bouton c'est tout. redémarrez votre programme VS et ckeck it. Après cela, vous ne devez pas ajouter le chemin de directeur dans votre constructeur comme

IWebDriver driver2 = new InternetExplorerDriver(@"C:\Selenium"); 

encore une chose n'oubliez pas d'importer des fichiers.

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;

pour les informaticiens plus avancés.

  1. ajoute dans le répertoire des pilotes de chemin D'environnement your drivers.
  2. VisualStudio installez Selenium en utilisant NuGet package manager en mode console ou comme vous le souhaitez.

    H> Install-Package de Sélénium.WebDriver

  3. redémarrer VS.
1
répondu Said 2017-01-23 16:07:29

je voudrais essayer ceci:

  1. tout d'abord, assurez-vous que votre projet C# utilise la même version .net framework que les bibliothèques du pilote Client (lorsque vous les téléchargez depuis Selenium HQ, Vous devriez voir la version framework sur laquelle ils sont basés). J'ai 3.5 et 4.0 à partir du 15/09/2017, donc j'ai dû déclasser mon projet C# en .NET 4.0 Pour utiliser les bibliothèques de pilotes Client 4.0.

  2. dans votre code, lors de la création du Service de pilote de Firefox, assurez-vous que vous spécifiez explicitement le chemin vers où votre geckodriver.exe est localisé. Voyez comment j'ai ajouté un paramètre path à votre appel à FirefoxDriverService.CreateDefaultService :

    using OpenQA.Selenium.Firefox;
    
    public static class FirefoxInitialise
    {
      private static IWebDriver Driver{get; set;}
      public static IWebDriver Init()
      {
       // I'm assuming your geckodriver.exe is located there:
       // @"C:\MyGeckoDriverExePath\geckodriver.exe"
       FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:\MyGeckoDriverExePath\");
       service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe"; // May not be necessary
       FirefoxOptions options = new FirefoxOptions();
       TimeSpan time = TimeSpan.FromSeconds(10);
       Driver = new FirefoxDriver(service, options, time);
       return Driver;
     }
    }
    

So you can use :

IWebDriver driver = FirefoxInitialise.Init();
1
répondu Fabien Teulieres 2018-07-02 06:48:49

si vous avez l'exécutable dans la variable d'environnement path, cela signifie probablement qu'il n'a pas la permission d'y accéder. Comme solution de contournement, essayez D'exécuter Visual Studio en tant qu'administrateur.

ou vous pouvez le déplacer à un endroit où il a la permission. Par exemple:

var service = FirefoxDriverService.CreateDefaultService(@"D:\tmp\Binaries");
service.FirefoxBinaryPath = FirefoxBinary;

var options = new FirefoxOptions();
options.SetPreference("browser.private.browsing.autostart", true);

_driver = new FirefoxDriver(service, options, TimeSpan.FromSeconds(30));

là j'ai mis les binaires dans D:\tmp\Binaries\ et l'ai spécifié dans le code pour vérifier le geckodriver là.

0
répondu Syakur Rahman 2016-10-24 01:58:11

j'ai continué à obtenir cette erreur aussi & la seule chose que je pouvais faire pour finalement la corriger (pas sûr si c'est la meilleure réponse pour tout le monde qui a ce problème) était j'ai placé le geckodriver.exe dans mon répertoire principal de bibliothèque, puis j'ai ouvert webdriver.py :

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py

a trouvé la ligne où il est écrit: executable_path="geckodriver", firefox_options=None,

et changé en:

executable_path="/Library/geckodriver", firefox_options=None

0
répondu Milena Paz 2017-01-01 04:36:44

j'avais un problème visuel Studio 2017 où la construction échouerait parce qu'il cherchait dans un répertoire inexistant pour le geckodriver exec. Je l'avais aussi ajouté en utilisant nuget pack manager. Ce que j'ai trouvé était dans Visual Studio - > Project - >Properties - > Build it works si vous rendez la construction indépendante de l'architecture: la cible de la plate-forme est N'importe quel CPU et soit laisser les autres cases à cocher (préférer 32 bits, autoriser le code dangereux, optimiser le code) tout non vérifié ou juste avoir coché 32 bits (qui est la valeur par défaut sur mon système). btw: mon Application était un .net Framework 4.5.2 Application Console

0
répondu Scott Maretick 2017-04-25 17:11:11