作者:小妖2502898957 | 来源:互联网 | 2023-08-30 13:23
我喜欢访问一些不受我控制的页面.可能是此页面执行了一些缓慢的get请求,但主要的html已完全加载并显示.我尝试了很多选择,但我可以做到.firefoxWebDriver.get(
我喜欢访问一些不受我控制的页面.可能是此页面执行了一些缓慢的get请求,但主要的html已完全加载并显示.我尝试了很多选择,但我可以做到. firefoxWebDriver.get(…)在实际时间内不会在某些站点上终止.
为了重现该问题,我编写了这个小的UnitTest来显示问题:
public class Timeout {
private FirefoxDriver driver;
@Before
public void setup() {
final FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("dom.max_script_run_time", 0);
profile.setPreference("webdriver.load.strategy", "fast");
this.driver = new FirefoxDriver(profile);
// this.driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
// this.driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);
}
@Test(timeout = 15000)
public void shouldRetriveREDCAFEPageQuiteFast() {
this.driver.get("http://redcafe.vn/Home/su-kien-binh-luan/kagawa-tu-choi-mac-ao-so-7");
}
@Test(timeout = 15000)
public void shouldRetriveMUFCPageQuiteFast() {
this.driver.get("http://news.mufc.vn/detail/172-hoan-tat-giay-phep-lao-dong-m-u-chinh-thuc-so-huu-kagawa.html");
}
@After
public void tearDown() {
this.driver.close();
}
}
感谢您的帮助.
解决方法:
.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
将页面加载超时设置为60秒,此后它将引发错误.您需要在首次调用get()之前进行设置.
从Webdriver 2.20.0版本开始支持该API.
Refer API Reference for new Timeout API’s