福气鱼*_*福气鱼 33 java selenium webdriver
当我在像FirefoxDriver这样的webdriver中使用代理时,如果代理不好,那么get方法将永远阻止.我设置了一些超时参数,但这没有用.
这是我的代码:
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")
Run Code Online (Sandbox Code Playgroud)
对driver.get的调用将永远阻塞,但我希望它等待30秒,如果页面未加载则抛出异常.
Fuj*_*Liu 27
试试这个:
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
小智 25
这些timeouts()方法在某些驱动程序中没有实现,并且通常非常不可靠.
我为超时使用一个单独的线程(将url作为线程名称传递给access):
Thread t = new Thread(new Runnable()
{
public void run()
{
driver.get(Thread.currentThread().getName());
}
}, url);
t.start();
try
{
t.join(YOUR_TIMEOUT_HERE_IN_MS);
}
catch (InterruptedException e)
{ // ignore
}
if (t.isAlive())
{ // Thread still alive, we need to abort
logger.warning("Timeout on loading page " + url);
t.interrupt();
}
Run Code Online (Sandbox Code Playgroud)
这似乎在大多数时间都有效,但是可能会发生驱动程序真的卡住以及随后对驱动程序的任何调用都会被阻止(我在Windows上使用Chrome驱动程序时会遇到这种情况).甚至像driver.findElements()调用一样无害的东西也可能最终被阻止.不幸的是我没有阻止驱动程序的解决方案
小智 8
尝试
driver.executeScript("window.location.href='http://www.sina.com.cn'")
该声明将立即返回.
之后,您可以添加带超时的WebDriverWait来检查页面标题或任何元素是否正常.
希望这会帮助你.
我有同样的问题,感谢这个论坛,其他一些人找到了答案.最初我还想到了单独的线程,但它使代码复杂化了一些.所以我试图找到一个符合我的原则"优雅和简单"的答案.
请看一下这样的论坛:https: //sqa.stackexchange.com/questions/2606/what-is-seleniums-default-timeout-for-page-loading
#解决方案:在代码中,在使用'get'方法行之前,您可以使用例如:
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
#
有一件事是它抛出timeoutException,所以你必须将它封装在try catch块中或者包装在某个方法中.
我没有找到pageLoadTimeout的getter所以我不知道什么是默认值,但可能非常高,因为我的脚本被冻结了好几个小时而没有任何进展.
#注意:Chrome驱动程序未实现'pageLoadTimeout',因此会导致异常.我看到用户评论说有计划制作它.
| 归档时间: |
|
| 查看次数: |
128127 次 |
| 最近记录: |