我正在学习使用Selenium(v2.20)来领先一些即将使用它创建浏览器测试的程序员。我想在陷阱到达之前发现它们,而我却跌入了一个陷阱。

创建我的ChromeDriver时,它总是弹出一个“ Google Chrome EULA”并显示两个按钮:“接受并运行”和“取消”。因为我希望这是一个自动化测试,所以让用户单击按钮是不可能的。

我查看了Chromium Command Switches列表,但没有找到任何有效的方法,也没有提及EULA的任何方法。如果我(在断点处)单击“接受并运行”,然后让代码继续进行,则测试工作正常。

代码,直到引起问题的那一行,如下:

using (var driverService = ChromeDriverService.CreateDefaultService(@"C:\Apps\ChromeDriver\"))
{
    driverService.Start();

    // This line pops up the EULA
    IWebDriver driver = new ChromeDriver(@"C:\Apps\ChromeDriver\");

    // rest of test...
}


还有其他人遇到这个问题吗?如果是这样,您如何解决?

更新4/4/12
我只是在工作时在计算机上运行了相同的代码,但我没有触发EULA(与Slanec的经验一致)而成功。这使我相信原因是环境。我正在研究两个系统之间的差异(均为Win7 x64),以确定原因。有更多信息后,我将进行更新。

非常感谢,

-塞思

最佳答案

如果仍然存在此问题,则会发生错误,因为每次运行测试时您都会打开chrome浏览器的全新实例,从而触发EULA。如果您将默认的chrome配置文件复制到您选择的自定义位置,然后将“ --user-data-dir = yourcustomlocation”标志添加到ChromeOptions,则可以绕过EULA并打开现有的配置文件。

ChromeOptions crOptions = new ChromeOptions();
crOptions.AddArgument(@"--user-data-dir=C:\custom location");
return new ChromDriver(crOptions);

关于testing - 如何在没有EULA的情况下启动ChromeDriver.exe?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9936070/

10-13 02:07