我用Selenium写了一个单元测试。 Unit测试类有一些(工作)单元测试。构造函数如下所示:
private IWebDriver _chrome;
public SeleniumTest()
{
_chrome = new ChromeDriver();
}
当我使用Test Exporer 在Test类中运行其中一个UnitTests时,一切正常。
但是当我创建包含相同单元测试的有序测试时,我在尝试启动ChromeDriver时收到错误:
OpenQA.Selenium.DriverServiceNotFoundException was unhandled by user code
HResult=-2146233088
Message=The chromedriver.exe file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at http://chromedriver.storage.googleapis.com/index.html.
Source=WebDriver
StackTrace:
bei OpenQA.Selenium.DriverService.FindDriverServiceExecutable(String executableName, Uri downloadUrl)
bei OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService()
bei OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
bei OpenQA.Selenium.Chrome.ChromeDriver..ctor()
bei MyTest.SeleniumTest..ctor() in C:\dev\myTest\SeleniumTest.cs:Zeile 27.
我使用NuGet将Selenium(和Chrome)添加到该项目
更新:chromedriver.exe位于项目的BIN目录中
答案 0 :(得分:2)
问题是有序测试会创建自己的目录并从那里运行代码。它们看起来像这样:
C:\ dev \ myApp \ MyTest \ TestResults \ MachineName 2016-06-15 15_26_39 \ Out
在此目录中没有chromedriver.exe
我使用DeploymentItem
- 属性解决了这个问题。在创建类的实例之前,此属性将文件从bin目录复制到Out目录。所以class-Attributes看起来像这样:
[TestClass]
[DeploymentItem("chromedriver.exe")]
之后,orderedTest运行时没有错误
答案 1 :(得分:0)
找不到chromedriver可执行文件。您应该在PATH环境变量中添加chromedriver.exe的路径,如execption消息中所述:
chromedriver.exe文件不存在于当前目录或PATH环境变量的目录中。可以在http://chromedriver.storage.googleapis.com/index.html下载驱动程序。