求指点,中止页面加载的方法
当Get一个页面的时候,如果页面加载时间比较长,会一直在超时时间内等待,哪怕要定位的一些静态的内容已经被加载也要等待,很不舒服。不知各位是怎么解决这个问题的,即在规定时间内中止页面加载?
先抛个砖,实验可以做到(针对Firefox浏览器),但是感觉这么做的味道不好,求更精准的解决方案
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
// 超时并不是中止页面加载,只是抛出异常
driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.SECONDS);
try{
driver.get("http://localhost/testweb/PageLoadTest/JS_LoadLotPic.html");
} catch(Exception e){
System.out.println("页面加载超时!!开始中止加载!!");
// 执行同步JS方法中止页面加载 —— 失效
// ((JavascriptExecutor)driver).executeScript("document.execCommand('stop');");
// 模拟Firefox 按下 Esc键方法中止加载 —— 成功
new Actions(driver).sendKeys(Keys.ESCAPE).perform();
}
} 本帖最后由 laoshan 于 2016-11-11 14:29 编辑
清晨一缕阳光 发表于 2016-11-11 00:07
可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载( ...
WebDriverWait类只能设置超时时间并抛出异常,但不能中止页面的加载
现在是可以确定需要的元素早就出现了,但是页面没有加载完,WebDriver就会处于等待中,因此需要中断页面的加载,不是判断元素的出现 可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载(在超时时间内)。具体的可以百度下这个方法的使用。 本帖最后由 laoshan 于 2016-11-11 14:28 编辑
清晨一缕阳光 发表于 2016-11-11 00:07
可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载( ...
这种显示等待,只能判断元素,不能处理页面。catch触发的时候页面可能没有加载完全
:handshake 学习 你好,这个问题解决了吗? 本帖最后由 Real_小T 于 2020-3-5 13:45 编辑
你这个方法应该是最简单高效的一个 直接用去high吧 :time: :handshake
页:
[1]