ChromeDriver阻止并在意外警报框后失败

时间:2012-02-06 14:43:15

标签: java selenium selenium-chromedriver

我在测试盒(Windows 7 64位)上运行selenium-server-standalone-2.17.0(适用于IE和Firefox)和ChromeDriver 18.0.1022.0(独立版),我用它来运行Java selenium测试。

出于某种原因,在针对ChromeDriver运行我的测试时,第一次遇到意外的警告框时,它会无限期地阻止,ChromeDriver日志会显示

WARNING: Executing: executeScript

我使用指南http://code.google.com/p/selenium/wiki/ChromeDriver配置了ChromeDriver,并使用

设置所有驱动程序的超时时间
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

更新 我想出了如何使用

以干净的方式初始化远程ChromeDriver
URL url = new URL("http://192.168.1.15:4444/wd/hub"); 
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
Webdriver chromeDriver = new RemoteWebDriver(url, capabilities); 

这最好用URL指向在子进程中运行chromedriver的selenium-server。您可以通过启动它来使selenium-server运行ChromeDriver:

java -jar C:\selenium-server.jar -Dwebdriver.chrome.driver=C:\path\to\chromedriver.exe

我仍然遇到同样的问题,Chrome卡在意外的警报框中,但是selenium日志给了我更多信息:

INFO - Done: /session/1328623219287/element/253/click
INFO - Executing: [execute script: return !!document['readyState'];, []] at URL: /session/1328623219287/execute)

仍然不知道造成这种情况的原因......任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是我初始化ChromeDriver的方式:

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, 
"PathToWhereChromeDriverIsAvailable"); 
ChromeDriverService service = ChromeDriverService.createDefaultService(); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("--start-maximized"); 
ChromeDriver cd = new ChromeDriver(service, options);

使用Alert()我只是猜测 - 可能它在执行脚本时挂起 - 所以基本上你不是在等待页面加载,而是让脚本结束执行。但是,我没有解决方案......