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