Selenium设置页面超时时间-快速终止页面加载

这篇具有很好参考价值的文章主要介绍了Selenium设置页面超时时间-快速终止页面加载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当使用Selenium爬取一些页面时,有些页面加载速度特别慢,而我们又不需要等待页面完全加载完毕。
此时可以通过driver.set_page_load_timeout()来设置页面超时时间。
捕获异常,并执行js脚本window.stop()即可实现,代码如下。

from selenium import webdriver

driver = webdriver.Chrome()
driver.set_page_load_timeout(3)

try:
    driver.get('https://hk.louisvuitton.com/zht-hk/homepage')
    print('finish load ....')
except Exception:
    driver.execute_script('window.stop()')
    print(driver.title)
finally:
    driver.quit()

报错处理:
如果遇到如下,超时错误,可以尝试更新chromedriver驱动。

selenium设置超时时间,selenium,selenium,python,chrome

 Selenium分离式启动Webdriver服务和浏览器

Selenium在启动浏览器时实际进行里两步操作,

  1. 通过子进程,使用chromedriver启动一套Webdriver服务
  2. 使用webdriver.Remote()方法连接该服务并发送指令启动浏览器。

在某些情况下如果,你需要分离式启动服务和连接服务的过程,可以使用以下步骤,参考代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service   # 导入chrome的服务启动方法
# 1. 启动服务
service = Service('/usr/local/bin/chromedriver')  # 传入chromedriver路径,实例化一个服务应用
service.start()  # 启动服务

# 2. 连接服务
driver = webdriver.Remote(service.service_url)  # 连接服务

driver.get('https://www.baidu.com/')
driver.quit()

Selenium保存网页为mhtml方法

MHTML即MIME HTML,归档网页,将样式和脚本全部集成到一个文件中。
Chrome Devtools Protcal API中包含了Page.captureSnapshot方法,可以获取到网页的mhtml格式内容。
我们使用Selenium的driver.execute_cdp_cmd()执行该命令后,将结果写入文件即可,示例代码如下。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.qq.com/')

# 1. 执行 Chome 开发工具命令,得到mhtml内容
res = driver.execute_cdp_cmd('Page.captureSnapshot', {})

# 2. 写入文件
with open('qq.mhtml', 'w', newline='') as f:   # 根据5楼的评论,添加newline=''
    f.write(res['data'])

driver.quit()

保存结果,如下图,可以使用浏览器打开。

更多的cdp方法可以参考 (chrome-devtools-protocol)[Chrome DevTools Protocol]

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

selenium设置超时时间,selenium,selenium,python,chrome文章来源地址https://www.toymoban.com/news/detail-605693.html

到了这里,关于Selenium设置页面超时时间-快速终止页面加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium 页面加载策略

    共有三种类型的页面加载策略. 页面加载策略可以在此链接查询 document.readyState , 如下表所述: 策略 就绪状态 备注 normal complete 默认值, 等待所有资源下载 eager interactive DOM 访问已准备就绪, 但诸如图像的其他资源可能仍在加载 none Any 完全不会阻塞 WebDriver 文档的  document.rea

    2024年02月07日
    浏览(31)
  • VSphere VCenter Web Client 加载缓慢卡顿问题 & 设置登陆状态超时时间

    都快2024年了,VSphere(VMware服务器版)还是有大量公司在用,用久了公有云会对这个产生鄙视感,但这个东西其实还算成熟,甚至还支持Terraform,不过毕竟是自己维护,如果不注意很容易踩坑 vSphere(VMware vSphere)在早期版本中主要使用C#客户端(也称为vSphere客户端或vSphere W

    2024年02月03日
    浏览(38)
  • Python Selenium.WebDriver 最强详解页面加载策略

    在通过Selenium加载一个网页时,Selenium都会等待页面加载完了才会运行下面的代码,这是因为 webdriver.get 方法会阻塞直到网页全部加载完成。 通常如果当页面加载花费大量时间时,可能是加载了很多外部资源「如:图像、css」,又或则是浏览的是国外网站,使用的网络环境差

    2023年04月22日
    浏览(45)
  • python爬取动态加载页面,selenium实现滚动到底

    最近的写爬虫的时候遇到一些问题,就是页面是动态加载的,抓包的时候发现页码不规律,于是想到用selenium控制浏览器自动拖拽滚动到底,找了好多方法直接是加载js的不太好用,看到一个博主的能用方法,我把他贴一下。 selenium实现无限滚动、循环滚动到底 这是我自己更

    2024年02月11日
    浏览(56)
  • 解决Selenium WebDriver 加载页面时出现浏览器闪退

      如果不匹配的话,可以去以下网址下载https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/  如果还是不能解决selenium闪退,可以通过以下几行代码来解决此问题。

    2024年02月15日
    浏览(85)
  • 爬虫学习(13):selenium自动化测试(二):等待页面加载完成

    在上一篇已经讲过了大部分的知识点和实战,本篇主要内容为知识点回顾和多个元素的定位知识点补充,以及补充页面加载知识点和案例。 在一个页面中有很多不同的策略可以定位一个元素。在你的项目中,你可以选择最合适的方法去查找元素。Selenium提供了下列的方法给你

    2024年02月06日
    浏览(53)
  • selenium-webdriver+nodejs等待页面加载完毕后执行后续动作

    最近在用selenium-webdriver+nodejs为自己的项目写一个自动登录、自动跳转页面的自动化工具,减少开发环境中切换不同账号时,频繁操作的目的。(特殊环境,浏览器不允许打开密码记录功能) 网络上大部分是python或者java的项目,作为前端,当然要选择nodejs。 例如:登录后,点

    2024年02月06日
    浏览(42)
  • 当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,今天在针对js动态网页爬虫时,使用代理并使用Selenium,打开网页时,浏览器总是一闪而退,代码如下: from selenium import webdriver from seleniumwire import webdriver from selenium.webd

    2023年04月09日
    浏览(34)
  • 04 python38的scrapy和selenium处理异步加载的动态html页面

    1.4.1 taobao_login.py模拟登陆生成cookies.json 1.4.2 taobao_login_after.py淘宝登陆后测试 修改下载中间件配置 1.6.1 添加数据模型 1.6.2 修改爬虫代码 1.6.3 测试运行爬虫

    2024年02月06日
    浏览(41)
  • selenium打开chrome浏览器时弹出设置页面:Mircrosoft Defender 防病毒要重置您的设置

    1、win+r 输入 regedit打开注册表 2、查找指定目录:计算机HKEY_CURRENT_USERSoftwareGoogleChrome 注意是HKEY_CURRENT_USER文件加不是HKEY_USERS文件夹 3、删除TriggeredReset文件夹即可 注意事项:这里如果使用ctrl + f直接输入TriggeredReset可能会定位到HKEY_USERS文件夹下,该文件夹下也有一个Trigge

    2024年02月11日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包