51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4300|回复: 9
打印 上一主题 下一主题

求指点,中止页面加载的方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-11-10 17:17:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当Get一个页面的时候,如果页面加载时间比较长,会一直在超时时间内等待,哪怕要定位的一些静态的内容已经被加载也要等待,很不舒服。

不知各位是怎么解决这个问题的,即在规定时间内中止页面加载?

先抛个砖,实验可以做到(针对Firefox浏览器),但是感觉这么做的味道不好,求更精准的解决方案

  1.         public static void main(String[] args) {
  2.        
  3.                 WebDriver driver = new FirefoxDriver();
  4.                 driver.manage().window().maximize();

  5.                 // 超时并不是中止页面加载,只是抛出异常
  6.                 driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.SECONDS);
  7.                 try{
  8.                         driver.get("http://localhost/testweb/PageLoadTest/JS_LoadLotPic.html");
  9.                 } catch(Exception e){
  10.                         System.out.println("页面加载超时!!开始中止加载!!");
  11.                
  12.                         // 执行同步JS方法中止页面加载 —— 失效
  13.                         // ((JavascriptExecutor)driver).executeScript("document.execCommand('stop');");
  14.                        
  15.                         // 模拟Firefox 按下 Esc键方法中止加载 —— 成功
  16.                         new Actions(driver).sendKeys(Keys.ESCAPE).perform();
  17.                 }
  18.         }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2016-11-11 14:16:13 | 只看该作者
本帖最后由 laoshan 于 2016-11-11 14:29 编辑
清晨一缕阳光 发表于 2016-11-11 00:07
可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载( ...

WebDriverWait类只能设置超时时间并抛出异常,但不能中止页面的加载
现在是可以确定需要的元素早就出现了,但是页面没有加载完,WebDriver就会处于等待中,因此需要中断页面的加载,不是判断元素的出现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    擦汗
    2024-11-1 14:56
  • 签到天数: 1182 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2016-11-11 00:07:27 | 只看该作者
    可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载(在超时时间内)。具体的可以百度下这个方法的使用。

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2016-11-11 14:25:47 | 只看该作者
    本帖最后由 laoshan 于 2016-11-11 14:28 编辑
    清晨一缕阳光 发表于 2016-11-11 00:07
    可以通过Web driverWait()方法去判断页面元素是否出现,如果出现就认为已经加载完成,如果没有则等待加载( ...

    这种显示等待,只能判断元素,不能处理页面。catch触发的时候页面可能没有加载完全

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2019-8-1 09:34:39 | 只看该作者
    你好,这个问题解决了吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-10 10:58
  • 签到天数: 194 天

    连续签到: 1 天

    [LV.7]测试师长

    8#
    发表于 2019-8-26 01:14:16 | 只看该作者
    本帖最后由 Real_小T 于 2020-3-5 13:45 编辑

    你这个方法应该是最简单高效的一个 直接用去high吧
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 09:28 , Processed in 0.076455 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表