geckodriver.exe 不在当前目录或路径变量中,Selenium 2.53.1 + Firefox 48 + Selenium 3 Beta

geckodriver.exe not in current directory or path variable, Selenium 2.53.1 + Firefox 48 + Selenium 3 Beta

看到很多关于 Selenium 2.53.1 和 Firefox 47.0.1 的问题,但是 none 关于 Selenium 3 Beta 版本的问题。我正在尝试使用新的 gecko/marionette Firefox 网络驱动程序,但即使我有驱动程序位置;我的环境路径,火狐在程序里安装文件夹,在系统环境里给出驱动位置,还是不能正常工作

错误:

当前目录或 PATH 环境变量上的目录中不存在 geckodriver.exe。可以在 https://github.com/mozilla/geckodriver/releases.

下载驱动程序

使用:

示例代码 1

    using OpenQA.Selenium.Firefox;

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

         Driver = new FirefoxDriver();
    }

还尝试了以下操作:

    using OpenQA.Selenium.Firefox;

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

         FirefoxDriverServices service = FirefoxDriverService.CreateDefaultService();
         service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe";
         FirefoxOptions options = new FirefoxOptions();
         TimeSpan time = TimeSpan.FromSeconds(10);
         Driver = new FirefoxDriver(service, options, time);
    }

任何关于为什么代码仍然无法检测到此驱动程序的帮助或见解将不胜感激。

尝试将 geckodriver.exe 放在您的路径中:C:\Users\YourName\Documents\Visual Studio 2013\Projects\seleniump\seleniump\bin\Debug

您可以在 link:

找到 geckodriver.exe

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

如果您在项目中包含 geckodriver.exe 并在编译时将其复制到目标目录,则 webdriver 的工作方式与以前的版本相同。

如果您在路径环境变量中有可执行文件,则可能意味着它没有访问它的权限。作为解决方法,尝试以管理员身份 运行 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。

此解决方案可以帮助您解决问题:(虽然它确实帮助了我)

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();
    }
}
参考

我也一直收到这个错误&我唯一能做的就是最终修复它(不确定这是否是对遇到这个问题的每个人的最佳答案)是我把 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

这是给谁的初学者我会在下面写简短的版本 post :) 最简单的方法首先你需要下载你使用的浏览器的所有驱动程序并将所有驱动程序提取到例如。 C:\Selenium\ 然后转到 VisualStudio 然后从这里添加 Selenium packages 如图所示 Click here 在控制台中写入此代码 PM>Install-Package Selenium.WebDriver 复制之后您的驱动程序目录并从 windows 搜索选项卡类型变量和 select(编辑系统环境和变量)shown pic2 在此 windows您将在下面单击 高级 选项卡 环境变量... 这里您有 System variables section find PATH or Path Variable and edit it be careful don't delete it!! next click new - paste directory of drivers and click all windws ok按钮就是这样。重新启动您的 VS 程序并检查它。在此之后,您不必像

那样将导演路径添加到您的构造函数中
IWebDriver driver2 = new InternetExplorerDriver(@"C:\Selenium"); 

One more thing don't forget to import files.

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

更多高级 IT 人员。

  1. 添加到您的驱动程序目录的环境路径中。
  2. VisualStudio 在控制台模式下使用 NuGet 包管理器安装 Selenium 或者您希望如何安装。

    PM> Install-Package Selenium.WebDriver

  3. 重启VS

我有一个 Visual Studio 2017 年的问题,构建会失败,因为它正在寻找 geckodriver exec 的一个不存在的目录。我还使用 nuget 包管理器添加了它。我发现的是 Visual Studio->Project->Properties->Build 如果你使构建独立于体系结构,它就可以工作:平台目标是 Any CPU & 要么保留其他复选框(首选 32 -位、允许不安全代码、优化代码)全部未选中或仅选中首选 32 位(这是我系统上的默认设置)。 btw:my 应用程序是 .NET Framework 4.5.2 控制台应用程序

安装 Selenium.Firefox.Webdriver NuGet 包。

这会将 geckodriver.exe 复制到 bin 文件夹。

我会试试这个:

  1. 首先,确保您的 C# 项目运行与客户端驱动程序库相同的 .NET 框架版本(当您从 Selenium HQ 下载它们时,您应该会看到它们所基于的框架版本) .截至 2017 年 9 月 15 日,我有 3.5 和 4.0,所以我不得不将我的 C# 项目降级到 .NET 4.0 以使用 4.0 客户端驱动程序库。

  2. 在您的代码中,当创建 Firefox 驱动程序服务时,请确保您明确指定 geckodriver.exe 所在的路径。看看我是如何在你对 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();

此解决方案适用于 VS2017。像这样将 geckodriver.exe 复制到我的项目文件夹:

C:\Users\pedne\Desktop\C#\FirstSolution\FirstSolution\bin\Debug

在您的项目中,单击工具 --> Nuget 包管理器 --> 管理解决方案的 NuGet 包... 在公开场合 Window 浏览 Selenium.FireFox.WebDriver Select 项目和您的项目名称,然后单击安装。

这是将驱动程序放入您的 Selenium 项目的更简单的形式。