一尘不染

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

selenium

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

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

我查看了Chromium CommandSwitches 但没有找到任何有效的开关,也没有提到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),以确定原因。我将在
获得更多信息后进行更新。

非常感谢,


阅读 281

收藏
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