Python selenium页面加载慢超时的解决方案


Posted in Python onMarch 18, 2020

开发环境:

win10-64  python2.7.16  chrome77

from selenium import webdriver
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get('http://全部加载完成超级慢的网站')

user = 'abc'
pwd = '123

driver.find_element_by_id('email').send_keys(user)
driver.find_element_by_id('pass').send_keys(pwd)

先看这样一段代码

当执行了get以后,除非网站全部加载完成,否则你只能乖乖等,什么都不能干,这是整个程序是阻塞的,get不完就别想进行下面操作

这个等待可能是5分钟或者更久

其实5秒钟的时候界面就已经打开了,然后他还在加载些什么js,img,等待速度超慢的,但是网页人工是可以操作

那么有没有什么办法呢,网上找了一通,给出了很多解决方案

首先是这货(下面是我复制的):

from selenium import webdriver
driver=webdriver.Chrome()
driver.set_page_load_timeout(5)
driver.set_script_timeout(5)#这两种设置都进行才有效
try:
  d.get(s)
except:
  d.execute_script('window.stop()')#这句话好像没什么软用

可以在页面停止加载后继续操作了

driver.set_page_load_timeout(5)这玩意一设置,没问题,5秒后网页确实停止了,但是driver也死了,不管运行什么都是timeout,还说try一下,driver是死透了,只能重新来
不知道是selenium更新了还是他自己没测试还是chrome更新了,现在这么设置就是找死的

注意:使用set_page_load_timeout时候,当页面未加载出任何东西的时候(往往是html源码未加载),因为超时而停止,会导致driver失效,
后面的driver都不能操作,所以超时设置应该至少保证页面内容加载出来一部分,设置超时不宜过短,如下图在页面此种状态下停止加载后driver失效。

不错,是有人也说了,不能设置太短,会失效,但是我可以说,你设置5分钟照样失效,只要超时一次,driver就完蛋,直接翻车

接下来是另一个方法

# coding = utf-8
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import time

driver = webdriver.Chrome()
class button():
  def __call__(self, driver):
    if driver.find_element_by_id('js_love_url'):
      return True
    else:
      return False 

driver.implicitly_wait(60)
time_start = time.time()
driver.get('https://www.163.com/')

# driver.find_element_by_id('js_love_url').click()
WebDriverWait(driver,2,0.5).until(button()) 
time_end = time.time()
print('access time is : ', time_end - time_start)
time.sleep(2)
driver.quit()

用WebDriverWait进行操作,不过我测试下来,driver.get()不执行完,下面的代码根本就不会执行,所以还是不行

找了各种方法,各种操作,都失败了,总算今天找到了正确的方法

原理非常简单:driver.get()这个操作,改成不阻塞的就行了,这样打开网页就操作完成了,不需要等他加载

下面我可以直接等待需要的元素出现即可进行操作

配置也是很简单

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

#get直接返回,不再等待界面加载完成
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none"

driver = webdriver.Chrome(executable_path='chromedriver.exe')

配置一个参数,就是页面加载策略,系统默认是等待,就是等他加载完,直接设置成none,就是不等待,这样就是get操作完后直接就是结束了

到此这篇关于Python selenium页面加载慢超时的解决方案的文章就介绍到这了,更多相关Python selenium加载慢内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中实现php的var_dump函数功能
Jan 21 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
用pandas按列合并两个文件的实例
Apr 12 Python
感知器基础原理及python实现过程详解
Sep 30 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
手残删除python之后的补救方法
Jun 26 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 Python
Python Selenium 设置元素等待的三种方式
Mar 18 #Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 #Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 #Python
Python中remove漏删和索引越界问题的解决
Mar 18 #Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 #Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 #Python
PyTorch加载自己的数据集实例详解
Mar 18 #Python
You might like
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
Python3中详解fabfile的编写
2018/06/24 Python
python版大富翁源代码分享
2018/11/19 Python
set在python里的含义和用法
2019/06/24 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
电大会计学自我鉴定
2014/02/06 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
销售辞职信范文
2015/03/02 职场文书
政协委员个人总结
2015/03/03 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python