https://blog.csdn.net/liaojianqiu0115/article/details/79657747

UI自动化的时候有时某个页面可能因为网络原因会加载很长时间,甚至导致超时失败。

网络上找了很多方法,设置超时时间:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);   
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
设置超时时间后捕获异常然后使用js停止页面加载:

try{
    driver.get(url);
    //element.click();加载url或点击跳转都有可能加载缓慢
}catch(Exception e){
    ((JavascriptExecutor) driver).executeScript("window.stop();");
}

但是这些方法都不实用,有时会导致页面超时后,停止加载了,但是之后的代码一直都无法操作driver了,一直报错,所有用例都无法执行。

[1521714314.960][SEVERE]: Timed out receiving message from renderer: 20.000
[1521714314.961][SEVERE]: Timed out receiving message from renderer: -0.021

经过很长时间考虑后,终于想到了一个办法,在进入加载缓慢页面前,开启一个新线程,定时固定秒数后执行window.stop().

实现后发现确实可用

源码如下:

package com.jaque.tools;
 
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
 
public class StopLoadPage extends Thread{
    WebDriver driver = null;
    int sec = 0; 
    public StopLoadPage(WebDriver driver,int sec){
        this.driver = driver;
        this.sec = sec;
    }
    @Override
    public void run() {
        try {
            Thread.sleep(sec*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        ((JavascriptExecutor) driver).executeScript("window.stop();");
    }
}

调用方式:在加载缓慢页之前,写一条语句:

new StopLoadPage(driver,10).start();
就会在10s后自动停止加载当前页面。
--------------------- 
作者:利剑无锋 
来源:CSDN 
原文:https://blog.csdn.net/liaojianqiu0115/article/details/79657747 
版权声明:本文为博主原创文章,转载请附上博文链接!

selenium 页面加载超时处理相关推荐

  1. python网站打开慢_Python selenium页面加载慢超时的解决方案

    开发环境: win10-64  python2.7.16  chrome77 from selenium import webdriver driver = webdriver.Chrome(exec ...

  2. selenium 页面加载慢,超时的解决方案

    selenium 页面加载慢,超时的解决方案 前言 尝试一 尝试二 最终解决方案 前言 开发环境: win7,64位,Python 3.7.4 ,chrome 89.0.4389.128 from s ...

  3. Python selenium页面加载缓慢,超时解决办法

    最近在编写selenium自动化测试框架,遇到一个烦人的问题, driver.get()不执行完,浏览器页面一直在转圈圈,下面的代码根本就不会执行,耗时一天的时间终于解决了. 原理:driver.ge ...

  4. Selenium 页面加载慢(一直转圈)

    def setUp(self):# 修改页面加载策略desired_capabilities = DesiredCapabilities.CHROME # 注释这两行会导致最后输出结果的延迟,即等待页 ...

  5. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案

    driver.set_page_load_timeout(3) 页面加载时间设置 3 秒,执行到某一步涉及页面加载如果加载时间超过 3 秒就会停止加载并抛出异常,其实这个时候页面内的元素已经加载出来了 ...

  6. python selenium 等待页面加载_python selenium 三种等待方式详解(实战常用)

    引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待了,等待元素可见再继续运行程序: 注:当使用该放发的时 ...

  7. python3读取网页_python3+selenium获取页面加载的所有静态资源文件链接操作

    软件版本: python 3.7.2 selenium 3.141.0 pycharm 2018.3.5 具体实现流程如下,废话不多说,直接上代码: from selenium import webd ...

  8. java selenium (十三) 智能等待页面加载完成

    我们经常会碰到用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作.  否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后, 才能操 ...

  9. java等待页面加载_java selenium (十三) 智能等待页面加载完成

    我们经常会碰到用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作.  否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后, 才能操 ...

最新文章

  1. 简单protobuf
  2. tensorflow tf.encode_base64()(将字符串编码为网络安全的base64格式)
  3. 服务器文件每天备份重新命名,定时备份服务器文件至本地电脑
  4. navision系统和sap区别_SAP那些事-实战篇-89-浅谈金税接口方案
  5. 名图1.8智能隐藏功能_7年后再度回归 全新一代名图“大”不同_搜狐汽车
  6. 经历越多困难,你就变的更韧性
  7. 20号:JAVA的值传递与引用传递的正确理解
  8. Csharp四种简单的排序算法
  9. PHP下载服务器上的文件
  10. VMware 10激活码
  11. NORADLE - 基于oracle数据库的最简捷信息系统架构
  12. 全网最全网络数据采集(爬虫)指南
  13. mysql创建拼音函数_MySQL汉字转换拼音(存储函数)
  14. 单目标跟踪(模板更新)(UpdateNet)《Learning the Model Update for Siamese Trackers》
  15. 【WLAN】【基础知识】WIFI那些事儿之PMF
  16. maya批量文件修改插件 v1.0 下载及教程
  17. 神雕侠侣服务器维修时间,神雕侠侣什么时候更新_神雕侠侣更新维护了什么内容_快吧游戏...
  18. react,tsx中使用微信jssdk分享总结
  19. CVPR 2022 | 涨点显著!AMD提出:动态Sparse R-CNN
  20. empty() 是 (boolean) var 的反义词 is_null() 是 is_set() 的反义词!

热门文章

  1. IPMDA:week 1
  2. 巨量算数data解密
  3. 微领地商业模式开发 软件开发
  4. html标签可以嵌套吗,HTML标签的嵌套
  5. 如何新建一个oracle数据库,ORACLE怎么新建数据库
  6. 【趣题分享】关于蒋干盗书你所需要知道的
  7. Java登陆3GQQ以及获取好友信息与好友聊天的简单实现
  8. 币小秘:币圈五度春秋几度忧愁?解读每位投资者心态
  9. 百度飞桨AI抠图+图片合成
  10. ismobile什么意思_英语is是什么意思?