我正在学习使用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...
}
还有其他人遇到过这个问题吗?如果是这样,你是如何解决的?
更新4/4/12
我只是在工作中在我的计算机上运行相同的代码,但我没有触发EULA就成功了(与Slanec的经验一致)。这让我相信原因是环保的。我正在研究两个系统(两个Win7 x64)之间的差异来确定原因。一旦有了更多信息,我就会更新。
非常感谢,
-Seth
答案 0 :(得分: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);
答案 1 :(得分:1)
步骤:
它适用于我,希望也适合你们。