我在测试盒(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);
更新 我想出了如何使用
以干净的方式初始化远程ChromeDriverURL 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)
仍然不知道造成这种情况的原因......任何人都可以帮忙吗?
答案 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()
我只是猜测 - 可能它在执行脚本时挂起 - 所以基本上你不是在等待页面加载,而是让脚本结束执行。但是,我没有解决方案......