安装了Selenium WebDriver.ChromeDriver Nuget包,但不适用于MSTest

我已将WebDriver.ChromeDriver nuget包添加到我的解决方案中,该解决方案包含Selenium WebDriver使用Chrome运行自动化测试所需的ChromeDriver.exe文件。 查看包内容,它只包含以下文件:

tools\chromedriver.exe

应该做的是将此文件夹添加到PATH环境变量,以便可以通过以下代码访问chromedriver.exe (这是在使用MSTest的UnitTest项目中):

 [TestMethod] public void LaunchWebsite_Chrome() { // create ChromeDriver - this should work if chromedriver.exe // is known to the environment PATH variable IWebDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("http://localhost/"); } 

但是,我仍然遇到以下exception:

chromedriver.exe文件不存在于当前目录或PATH环境变量的目录中。 该驱动程序可以从http://code.google.com/p/chromium/downloads/list下载。

查看nuget文档,它表明nuget包的tools文件夹中的任何内容都将自动添加到PATH环境变量中:

http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package :软件包的tools文件夹用于可从软件包管理器控制台访问的powershell脚本和程序。 将文件夹复制到目标项目后,它将添加到`$ env:Path(PATH)环境变量中。

但是,这似乎不起作用。 我甚至在命令行上运行了echo %PATH% ,它没有将我的工具文件夹显示为已注册。

我究竟做错了什么?

我不打算使用NuGet包,因为这不是一个类库 – 从技术上讲,这就是NuGet的全部内容。 自该版本发布以来,ChromeDriver也已多次更新。

无论如何,我会说我刚刚做了同样的事情,看看问题是什么:

  1. 下载NuGet包
  2. 使用Visual Studio,通过右键单击项目 – >添加项目 – >现有项目,将新项目添加到项目中
  3. 导航并选择chromedriver.exe
  4. 更改属性以确保“复制到输出目录”设置为始终复制

您可能在第4点摔倒。该设置被设置为默认情况下不复制

我将其设置为“复制”,当我尝试重建它时总是会导致错误。 将其设置为“如果更新则复制”工作正常。

我有类似的问题通过这3个步骤解决了它

1.转到Google Chrome驱动程序官方网站https://sites.google.com/a/chromium.org/chromedriver/downloads下载并解压缩

2.转到Visual Studio解决方案资源管理器单击添加 – >现有文件 – >选择chrome驱动程序

3.右键单击VS中的chrome驱动程序,然后选择属性将其设置为始终复制

 IWebDriver driver = new ChromeDriver("C:\\Folder_with_Chrome_driver"); 

下载相关驱动程序并添加本地路径。

Nuget包将把driver.exe文件放在{buildconfiguration} /中,告诉它查看应用程序的根目录,传递一个“。” 在创建驱动程序的新实例时。

 IWebDriver driver = new ChromeDriver(".");