一尘不染

如何在没有EULA的情况下启动ChromeDriver.exe?

selenium

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

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

我查看了Chromium命令开关的列表,但没有找到任何有效的开关,也没有提到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...
}

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

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

非常感谢,

-塞思


阅读 308

收藏
2020-06-26

共1个答案

一尘不染

如果仍然存在此问题,则会发生错误,因为每次运行测试时您都会打开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);
2020-06-26