гекодривер.exe не в текущей переменной каталога или пути, Selenium 2.53.1 + Firefox 48 + Selenium 3 Beta
видел много вопросов, касающихся Selenium 2.53.1 и Firefox 47.0.1,но ни одного в отношении бета-версии Selenium 3. Я пытаюсь использовать новые веб-драйверы Gecko / marionette Firefox, но даже если у меня есть местоположение драйвера; мой путь к среде, папка установки Firefox в программах и местоположение диска в системной среде, он все равно будет работать неправильно.
ошибка:
в geckodriver.exe не существует в текущий каталог или в каталоге переменной среды PATH. Драйвер можно загрузить по адресуhttps://github.com/mozilla/geckodriver/releases.
использование:
- сервер Selenium 2.53.1
- Firefox 48
- Селен 3 Бета Dll
9 ответов
попробуйте поставить geckodriver.exe в вашем пути: C:\Users\YourName\Documents\Visual студия 2013\проекты\seleniump\seleniump\бин\ "отладка"
вы можете найти geckodriver.exe по этой ссылке:
установить селен.Браузер firefox.Вебдрайвера пакета NuGet.
Это скопирует geckodriver.exe в папку bin.
Это решение может помочь вам решить проблему: (это помогло мне, хотя)
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();
}
}
ССЫЛКА
Если u включает geckodriver.exe в вашем проекте, и вы копируете его в целевой каталог при компиляции, webdriver работает так же, как и в предыдущих версиях.
это для того, кто является нищими, я напишу короткую версию ниже после этого поста :)
Самый простой способ Сначала вам нужно загрузить все драйверы, какой браузер вы используете, и извлечь все драйверы, например C:\Selenium\
туда и VisualStudio
и отсюда добавить Selenium packages
показано на фотографии Нажмите здесь в консоли напишите этот код PM>
Install-Package Selenium.WebDriver
после этого скопируйте драйверы каталог и из вкладки поиска windows введите переменные и выберите (отредактируйте системную среду и переменные) shown pic2
в этом окне у вас будет дополнительно вкладка ниже нажмите Переменные Среды... вот вам System variables
найти PATH or Path
переменная и редактировать его будьте осторожны don't delete it!!
далее нажмите кнопку новая - вставьте каталог драйверов и нажмите кнопку все windws ok, вот и все. перезапуск ваш VS programm и ckeck это. После этого вам не нужно добавлять путь директора в свой конструктор, например
IWebDriver driver2 = new InternetExplorerDriver(@"C:\Selenium");
еще одна вещь, не забудьте импортировать файлы.
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
для более продвинутых парней.
- добавить в среду путь ваш каталог драйверов.
-
VisualStudio
установите Selenium с помощью диспетчера пакетов NuGet в консольном режиме или как бы вы хотели.PM> установить-пакет Selenium.Вебдрайвера
- перезапустить VS.
Я бы попробовал это:
во-первых, убедитесь, что ваш проект C# работает с той же версией .NET framework, что и библиотеки драйвера клиента (при загрузке их из Selenium HQ вы должны увидеть версию платформы, на которой они основаны). У меня 3.5 и 4.0 на 9/15/2017, поэтому мне пришлось понизить мой проект C# для .Net версии 4.0, чтобы использовать 4.0 библиотек драйверов клиента.
-
в коде при создании Службы драйверов Firefox убедитесь, что вы явно указать путь, где ваш geckodriver.расположен исполняемый файл. Посмотрите, как я добавил параметр path к вашему вызову
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();
Если у вас есть исполняемый файл в переменной среды path, это, вероятно, означает, что у него нет разрешения на доступ к нему. Как временное решение, попробуйте запустить Visual Studio от имени администратора.
или вы можете переместить его туда, где у него есть разрешение. Например:
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));
там я положил двоичные файлы в D:\tmp\Binaries\
и указал его в коде, чтобы проверить там geckodriver.
я продолжал получать эту ошибку также и единственное, что я мог сделать, чтобы, наконец, исправить это (не уверен, что это лучший ответ для всех, у кого есть эта проблема), я поместил geckodriver.exe
в моем главном каталоге библиотеки, затем я открыл webdriver.py
:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py
нашел строку, где говорится:
executable_path="geckodriver", firefox_options=None,
и изменил его на:
executable_path="/Library/geckodriver", firefox_options=None
У меня была проблема с Visual Studio 2017, где сборка завершилась бы неудачей, потому что она искала в несуществующем каталоге для geckodriver exec. Я также добавил его с помощью NuGet pack manager. То, что я нашел, было в Visual Studio - >Project - >Properties - >Build это работает, если вы делаете сборку независимой от архитектуры: цель платформы-любой процессор и либо оставляете другие флажки (предпочитайте 32-разрядный, разрешайте небезопасный код, оптимизируйте код) все непроверенными или просто предпочитаете 32-разрядный (который является по умолчанию в моей системе). кстати: мое приложение было консольным приложением .NET Framework 4.5.2