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.exeChrome目录link,但是你可以放在任何目录中。我决定把它放在这里。

2) 我使用指定的初始化了ChromeDriver 类的新实例 // 包含 ChromeDriver.exe 的目录的路径

我的代码:

IWebDriver drive = new ChromeDriver
("C:\\Documents and Settings\\...\\ApplicationData\\Google\\Chrome\\Application");

而且效果非常好。谢谢大家。

【讨论】:

【参考方案2】:

Selenium.Chrome.WebDriverNuGet包安装到项目中就不会再报错了。

在 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()返回先前关闭的窗口,如何区分这些窗口和活动窗口?

使用 Selenium webdriver 和 Python 获得完全渲染的 HTML

如何避免“元素当前不可见,因此可能无法与” Selenium Webdriver