【问题标题】:How to Start ChromeDriver.exe without EULA?如何在没有 EULA 的情况下启动 ChromeDriver.exe?
【发布时间】:2012-03-30 02:08:21
【问题描述】:

我正在学习使用 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)之间的差异以确定原因。有更多信息后我会更新。

非常感谢,

-赛斯

【问题讨论】:

  • 我刚刚尝试使用 (Java) WebDriver 全新安装 Google Chrome 18,它按预期工作。如果您手动打开 Chrome,是否会显示 EULA?你有哪个版本的 Chrome?您是否可以选择重新安装并再次使用 tyr?
  • @Slanec - 我有 chromedriver.exe 的 v1.8 和 v1.9。它们都表现出与上述代码相同的行为。我实际的 Chrome 浏览器是 v18,不要求 EULA,但我的测试中没有使用该可执行文件 (chrome.exe)。我愿意重新安装 Chrome,但想先用尽其他选项。感谢您的评论。
  • 为了将来参考,以下答案对我有用:stackoverflow.com/a/9974379

标签: testing google-chrome selenium


【解决方案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);

【讨论】:

    【解决方案2】:

    步骤:

    1. 将 chromedriver.exe 复制到 Windows/System32
    2. 现在转到您的 chrome 文件夹,对我来说它是:C:\Users\"%USERNAME%"\AppData\Local\Google\Chrome\
    3. 有一个 master_preferences 文件。
    4. 打开它和错误的 EULA 选项。

    它对我有用,希望对你们也有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-11
      • 2016-06-22
      • 1970-01-01
      • 2023-04-03
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      相关资源
      最近更新 更多