我正在学习使用 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...
}
还有其他人遇到过这个问题吗?如果是这样,你是如何解决的?
2012 年 4 月 4 日更新
我只是在工作时的计算机上运行相同的代码,并且在没有触发 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/