当我在Firefox驱动程序等webdriver中使用代理时,如果代理服务器不好,那么get方法将永远阻塞。我设置了一些超时参数,但是这并没有解决。如何设置硒webdriver获取超时?
这是我的代码:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override", ua);
Proxy p = new Proxy();
p.setHttpProxy(proxy);
profile.setProxyPreferences(p);
profile.setEnableNativeEvents(true);
// create a driver
WebDriver driver = new FirefoxDriver(profile);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);
driver.get("www.sina.com.cn")
到driver.get将阻止永远的电话,但我想它要等待30秒,如果没有加载的页面,然后抛出异常。
正如我写的,这个答案被接受为正确的。然而,正如zhongting [在下文中提到](http://stackoverflow.com/a/10827070/705157),这种解决方案似乎阻止了很长一段时间的负载。我认为实际的答案应该是[user1102631's](http://stackoverflow.com/a/12915015/705157)。 – 2013-10-02 18:26:40
同意,这个答案会延长30秒到硒运行的每一个命令。像这样的任意延迟是使测试工作非常昂贵且通常不可靠的方式。通常将隐式等待设置为0并使用显式等待每个操作的结果会更好。这是更可靠和通常更快,因为你只有等到行动发生,而不是每次全部时间限制。 – ajsutton 2014-01-20 22:26:18
@ajsutton你如何明确地等待? – Thufir 2014-10-14 06:48:26