我正在学习使用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),以确定原因。我将在 获得更多信息后进行更新。
非常感谢,
如果仍然有此问题,则会发生错误,因为每次运行测试时您都会打开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);