2012-03-30 618 views
2

我正在学习使用Selenium(v2.20)来领先我们的一些程序员,他们很快就会用它创建一些浏览器测试。我想在他们到达之前发现陷阱,并且我偶然发现了一个陷阱。如何在没有EULA的情况下启动ChromeDriver.exe?

当我创建我的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... 
} 

有没有其他人遇到这个问题?如果是这样,你是如何解决它的?

UPDATE 12年4月4日
我只是跑我在工作电脑上相同的代码,并没有触发EULA(与Slanec的经验相一致),我成功了。这让我相信,原因是环境问题。我正在研究两个系统(两个Win7 x64)之间的差异以确定原因。一旦我有更多的信息,我会更新。

谢谢了,

-Seth

+0

我刚刚尝试使用(Java)WebDriver全新安装Google Chrome 18,并且按预期工作。如果您手动打开Chrome,EULA会显示吗?你有哪个版本的Chrome?您是否可以重新安装它并重新安装吗? – 2012-03-30 23:53:56

+0

@Slanec - 我已经有chromedriver.exe的v1.8和v1.9。他们都表现出与上面的代码相同的行为。我的实际Chrome浏览器是v18,并且不要求EULA,但是我的测试中没有使用该可执行文件(chrome.exe)。我愿意重新安装Chrome,但首先要耗尽其他选项。感谢您的评论。 – SethO 2012-03-31 21:16:57

+0

适用于我=(。 – 2012-04-02 21:40:16

回答

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. 您chromedriver.exe复制到Windows/System32下
  2. 现在转到您的Chrome文件夹,对我来说是:C:\用户\ “%USERNAME%” \ AppData \ Local \ Google \ Chrome \
  3. 有一个master_preferences文件。
  4. 打开它并显示错误的EULA选项。

它对我有用,希望对你们都有效。

相关问题