ChromeDriver会阻塞,并且在出现意外警报框后不会失败



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

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

WARNING: Executing: executeScript

我使用指南配置了ChromeDriverhttp://code.google.com/p/selenium/wiki/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服务器的情况下运行得最好。你可以像这样启动selenium服务器来运行ChromeDriver:

java -jar C:selenium-server.jar -Dwebdriver.chrome.driver=C:pathtochromedriver.exe

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

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

仍然不知道是什么原因造成的。。。有人能帮忙吗?

这就是我初始化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(),我只是简单的猜测——可能它在执行脚本时挂起了——所以基本上您不是在等待页面加载,而是在等待脚本结束执行。然而,我对此没有解决方案。。。

最新更新