Selenium.WebDriver - 当我尝试在 Chrome 中运行测试时出现错误
Posted
技术标签:
【中文标题】Selenium.WebDriver - 当我尝试在 Chrome 中运行测试时出现错误【英文标题】:Selenium.WebDriver - I get error when I try to run my test in Chrome 【发布时间】:2012-05-26 02:41:54 【问题描述】:当我尝试在 Chrome 中运行测试时出现此错误:
初始化方法 AutomationUsingSelenium.SmuladorChrome.MyTestInitialize 抛出异常。 OpenQA.Selenium.DriverServiceNotFoundException: OpenQA.Selenium.DriverServiceNotFoundException
是什么原因?
【问题讨论】:
你试过给chromedriver路径吗? 可以,但不行:System.Environment.SetEnvironmentVariable("webdriver.chrome.driver", "C:\\..\\Drivers\\chromedriver.exe"); IWebDriver drive = new ChromeDriver();
你可以试试这个qn中提到的第二个选项***.com/questions/10650360/…
WebDriver 不需要 Selenium Server 运行。
啊,我的错。我正在考虑远程 webdriver ..
【参考方案1】:
最后我解决了我的问题如下:
1)我复制了chromedriver.exe到Chrome目录link,但是你可以放在任何目录中。我决定把它放在这里。
2) 我使用指定的初始化了ChromeDriver
类的新实例
// 包含 ChromeDriver.exe 的目录的路径
我的代码:
IWebDriver drive = new ChromeDriver
("C:\\Documents and Settings\\...\\ApplicationData\\Google\\Chrome\\Application");
而且效果非常好。谢谢大家。
【讨论】:
【参考方案2】:将Selenium.Chrome.WebDriver
NuGet包安装到项目中就不会再报错了。
在 Visual Studio 中,右键单击项目,单击 Manage NuGet Packages... ,搜索 Selenium.Chrome.WebDriver 并单击安装。
享受硒。
【讨论】:
这是 VS 用户最好/最简单的解决方案 - 它包含您需要的一切;无需担心设置路径。【参考方案3】:假设chromedriver.exe
存在于以下路径中:G:\Selenium_Csharp\Jar\chromedriver_win32\chromedriver.exe
要在 Chrome 中执行测试,请将路径设置为包含 chromedriver.exe
的目录/文件夹,而不选择 chromedriver.exe
文件名。
driver = new ChromeDriver("G:\\Selenium_Csharp\\Jar\\chromedriver_win32");
driver.Url ="http://www.gmail.com";
driver.Manage().Window.Maximize();
或
driver = new ChromeDriver(@"G:\Selenium_Csharp\\Jar\\chromedriver_win32");
driver.Url ="http://www.gmail.com";
driver.Manage().Window.Maximize();
【讨论】:
【参考方案4】:这是我看到的错误: OpenQA.Selenium.DriverServiceNotFoundException:chromedriver.exe 文件不存在于当前目录或 PATH 环境变量的目录中。
我通过在命令中指定“testsettings”参数来运行单元测试解决了这个问题。
例如
E:\Development\SampleProject\SampleProject.MvcWebApp\SampleProject.MvcWebApp.javascriptUnitTests\JavaScriptUnitTests\bin\Debug>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe" /testcontainer:JavaScriptUnitTests.dll /category:"JavaScriptUnitTests" /testsettings:..\..\..\Local.Testsettings /resultsfile:..\..\..\..\..\MsTestResults\SampleProject.MvcWebApp.JavaScript.Tests.trx
我使用“/testsettings:......\Local.Testsettings”,因为 Local.testsettings 文件比我执行此命令的级别高 4 个级别。你应该相应地改变它。
这是ccnet.config文件中使用的命令
<exec>
<executable>C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe</executable>
<baseDirectory>SampleProject.MvcWebApp\SampleProject.MvcWebApp.JavaScriptUnitTests\JavaScriptUnitTests\bin\Debug</baseDirectory>
<buildArgs>/testcontainer:JavaScriptUnitTests.dll /category:"JavaScriptUnitTests" /testsettings:..\..\..\Local.Testsettings /resultsfile:..\..\..\..\..\MsTestResults\SampleProject.MvcWebApp.JavaScript.Tests.trx</buildArgs>
<successExitCodes>0</successExitCodes>
</exec>
【讨论】:
我没有发现这个答案有帮助,因为您没有解释正在修复的内容或如何创建测试设置文件。经过大量研究后,我确定 testsettings 文件必须禁用“启用部署”,这需要在测试设置 UI 中切换该设置。基本问题是,在部署过程中,MSTest 只复制 dll、config 而不是 exe。以上是关于Selenium.WebDriver - 当我尝试在 Chrome 中运行测试时出现错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 selenium webdriver C# 获取元素样式属性的值
日志中的selenium webdriver ruby 警告消息
无法在 IE 上使用 Java 中的 Selenium WebDriver 获取新窗口句柄
Selenium WebDriver .getWindowHandles()返回先前关闭的窗口,如何区分这些窗口和活动窗口?