0

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

出于某种原因,当我对 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); 

使用指向在子进程中运行 chromedriver 的 selenium 服务器的 URL 运行得最好。你可以像这样启动 selenium-server 来运行 ChromeDriver:

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

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

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

仍然不知道是什么原因造成的......有人可以帮忙吗?

4

1 回答 1

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()只是简单地猜测 - 可能它在执行脚本时挂起 - 所以基本上你不是在等待页面加载,而是等待脚本结束执行。但是,我对此没有解决方案......

于 2012-02-06T18:51:22.447 回答