ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("extension_6_2_5_0.crx")); //ZenMate
options.addExtensions(new File("extension_2_9_2_0.crx")); //AdGuard
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(options);
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //Timeout after 10 seconds
这就是我设置 Chrome 驱动程序的方式
try {
driver.navigate().to("http://dic.naver.com/");
}catch (TimeoutException e){
System.out.println("Time out Exception");
driver.navigate().refresh();
}
这是我的代码。
我运行它,然后它按预期捕获 TimeoutException,
但随后浏览器停止执行任何 get() 或 navigator().to() 或刷新命令。
Starting ChromeDriver 2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9) on port 6823
Only local connections are allowed.
Jul 18, 2018 8:47:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
[1531936076.034][SEVERE]: Timed out receiving message from renderer: 4.660
[1531936076.633][SEVERE]: Timed out receiving message from renderer: -0.606
Time out Exception
[1531936090.525][SEVERE]: Timed out receiving message from renderer: 10.000
[1531936090.563][SEVERE]: Timed out receiving message from renderer: -0.057
Exception in thread "main" org.openqa.selenium.TimeoutException: timeout
(Session info: chrome=67.0.3396.99)
(Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.17134 x86_64) .remote.RemoteWebDriver$RemoteNavigation.refresh(RemoteWebDriver.java:856)
at Markov.Bots.Bot_Kancolle.stay(Bot_Kancolle.java:43)
at Markov.Scroller.main(Scroller.java:71)
相反,它在执行 driver.navigate().refresh(); 时抛出另一个 TimeoutException;在第 43 行
当我执行另一个 driver.get() 时,浏览器只是在 TimeoutException 处停止,不刷新,不连接到新 URL
如何正确捕获 TimeoutException 并重用此浏览器进行下一个 URL 连接???