我正在学习使用 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...
}
还有其他人遇到过这个问题吗?如果是这样,你是如何解决的?
2012 年 4 月 4 日更新
我只是在工作时的计算机上运行相同的代码,并且在没有触发 EULA 的情况下成功了(与 Slanec 的经验一致)。这让我相信原因是环境。我正在研究两个系统(均为 Win7 x64)之间的差异以确定原因。一旦我有更多信息,我会更新。
非常感谢,
-Seth
如果您仍然遇到此问题,则会出现错误,因为您每次运行测试时都会打开一个全新的 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)