如何在没有EULA的情况下启动ChromeDriver.exe?

时间:2012-03-30 02:08:22

标签: testing google-chrome selenium

我正在学习使用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

2 个答案:

答案 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)

步骤:

  1. 将chromedriver.exe复制到Windows / System32
  2. 现在转到你的chrome文件夹,对我来说是:C:\ Users \“%USERNAME%”\ AppData \ Local \ Google \ Chrome \
  3. 有一个master_preferences文件。
  4. 打开它并使用假EULA选项。
  5. 它适用于我,希望也适合你们。