гекодривер.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 по этой ссылке:

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


установить селен.Браузер 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;

для более продвинутых парней.

  1. добавить в среду путь ваш каталог драйверов.
  2. VisualStudio установите Selenium с помощью диспетчера пакетов NuGet в консольном режиме или как бы вы хотели.

    PM> установить-пакет Selenium.Вебдрайвера

  3. перезапустить VS.

Я бы попробовал это:

  1. во-первых, убедитесь, что ваш проект C# работает с той же версией .NET framework, что и библиотеки драйвера клиента (при загрузке их из Selenium HQ вы должны увидеть версию платформы, на которой они основаны). У меня 3.5 и 4.0 на 9/15/2017, поэтому мне пришлось понизить мой проект C# для .Net версии 4.0, чтобы использовать 4.0 библиотек драйверов клиента.

  2. в коде при создании Службы драйверов 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