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é.
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:
installez le sélénium.Firefox.Webdriver paquet NuGet.
cela copiera geckodriver.exe au dossier bin.
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
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.
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.
- ajoute dans le répertoire des pilotes de chemin D'environnement your drivers.
-
VisualStudio
installez Selenium en utilisant NuGet package manager en mode console ou comme vous le souhaitez.H> Install-Package de Sélénium.WebDriver
- redémarrer VS.
je voudrais essayer ceci:
-
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.
-
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();
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à.
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
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