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

Dav*_* 84 11 c# mstest visual-studio selenium-chromedriver selenium-webdriver

我已将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/");
}
Run Code Online (Sandbox Code Playgroud)

但是,我仍然遇到以下异常:

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%至在命令行上运行它并没有将我的工具文件夹显示为已注册.

我究竟做错了什么?

Arr*_*ran 17

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

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

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

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

  • 手动添加文件是一个很好的解决方法,但任何想法为什么NuGet没有将"tools"文件夹添加到PATH环境变量?(它的文档表明它应该) (3认同)

RnD*_*Drx 5

Nuget软件包会将driver.exe文件放置在{buildconfiguration} /中,以使其在应用程序的根目录中查找,请传递“”。在创建驱动程序的新实例时。

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