Selenium WebDriver C#测试脚本中不存在ChromeDriver

Hig*_*ead 30 .net c# webdriver selenium-webdriver

System.addProperty("webdriver.chrome.driver", ".../chromedriver.exe"); 在实例化驱动程序之前,我遇到了一些似乎已解决问题的问题.

我没有运气,我仍然得到文件.../bin/Debug/chromedriver.exe不存在的错误.

有没有人有幸运行而不把它放在bin文件夹中?

示例代码:

System.Environment.SetEnvironmentVariable("webdriver.chrome.driver", @"c:\path\to\driver\chromedriver.exe");
BrowserDriver = new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)

Jim*_*ans 65

由于您使用的是C#,因此您应该使用ChromeDriver的构造函数重载,它允许您指定包含chromedriver.exe的目录的路径.以机智:

IWebDriver driver = new ChromeDriver(@"C:\my\path\to\chromedriver\directory");
Run Code Online (Sandbox Code Playgroud)


Mca*_*nic 27

旧问题,新答案(为了它的价值):只需安装Nuget包Selenium.WebDriver.ChromeDriver.Chromedriver.exe将在下一个版本的bin/debug目录中.

第三方编辑2017-09

在此GitHub的页面jsakamoto/nupkg -硒的webdriver-chromedriver /跑跑后Install-Package Selenium.WebDriver -Version 3.5.2chromedriver文件(.exe)位于此文件夹下

"{solution folder} /packages/Selenium.WebDriver.ChromeDriver.{ver}/driver/{platform}"


小智 18

这可能是因为NuGet包是从全局位置而不是.NET Framework项目的packages文件夹加载的.这对我有用:

IWebDriver driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
Run Code Online (Sandbox Code Playgroud)

  • 这个简单的答案与安装NuGet软件包Selenium.Chrome.WebDriver结合起来为我修复了它。 (2认同)

Mik*_*ASP 7

you may have enum for your all drivers : 
  public enum Drivers
    {
        Chrome,
        Firefox,
        Safari,
        Edge,
        IE
    }


  public static IWebDriver GetDriver(Drivers driver)
        {
Run Code Online (Sandbox Code Playgroud)

outPutDirectory - >是构建解决方案时复制所有支持dll和文件的位置.示例:C:\ Users\Mike\source\repos\Automation\Automation\bin\Debug

     var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
     // below is my location where I copied all drivers like chromedriver.exe 
Run Code Online (Sandbox Code Playgroud)

relativePath - >是构建soltuion示例时正在复制的文件夹之一:C:\ Users\Mike\source\repos\Automation\Automation\bin\Debug\BrowserDriver

        var relativePath = @"..\..\bin\Debug\BrowserDriver"; 
Run Code Online (Sandbox Code Playgroud)

//因此,无论您在哪台机器或PC上运行自动化,'chromeDriverPath'都会为您提供驱动程序的准确位置

       var chromeDriverPath = Path.GetFullPath(Path.Combine(outPutDirectory,relativePath));
    // return this driver , just debug this code and check the "outPutDirectory" path
       return new ChromeDriver(chromeDriverPath);
   }
Run Code Online (Sandbox Code Playgroud)


小智 6

Selenium.WebDriver.ChromeDriver从NuGet 安装,然后您可以执行以下操作:

IWebDriver driver = new ChromeDriver(Environment.CurrentDirectory);
Run Code Online (Sandbox Code Playgroud)