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

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

   

driver.set_page_load_timeout(3) 页面加载时间设置 3 秒,执行到某一步涉及页面加载如果加载时间超过 3 秒就会停止加载并抛出异常,其实这个时候页面内的元素已经加载出来了,我们在这一步进行异常捕获不让程序停止,然后直接执行下一步即可。

报错信息如下:

selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 3.000

def analyze_jira(driver, d):
    # 方案一:异常捕获方案
    # 页面加载时间设置,超时会直接报错,将会报错的地方加个异常不过,完美解决问题
    driver.set_page_load_timeout(3)
    for (k,v) in d.items():
        driver.find_element_by_xpath('//input[@id="quickSearchInput"]').send_keys(k[4:])
        try:
          # 查询操作,耗时很长
            ActionChains(driver).send_keys(Keys.ENTER).perform()
        except Exception as e:
            print("抓到异常,页面停止加载,但是程序不停止。")
        time.sleep(1)
        # 提取页面指定元素的文本
        question_zhuti = driver.find_element_by_xpath('//*[@id="summary-val"]').text;

还可以通过 set_script_timeout() 方法来解决问题。

def analyze_jira(driver, d):
    # 方案二:同时设置脚本执行超时时间方案
    # 设置脚本报错之前的等待时间,这个小于等于上面set_page_load_timeout()设置的时间就不会抛错。
    driver.set_page_load_timeout(3)
    driver.set_script_timeout(3)
    for (k,v) in d.items():
        driver.find_element_by_xpath('//input[@id="quickSearchInput"]').send_keys(k[4:])
        # 查询操作,耗时很长
        ActionChains(driver).send_keys(Keys.ENTER).perform()
        time.sleep(1)
        # 提取页面指定元素的文本
        question_zhuti = driver.find_element_by_xpath('//*[@id="summary-val"]').text;

set_page_load_timeout()

方法说明:

Set the amount of time to wait for a page load to complete before throwing an error.

翻译:

设置在抛出错误之前等待页面加载完成的时间。

set_script_timeout()

方法说明:

Set the amount of time that the script should wait during an execute_async_script call before throwing an error.

翻译:

设置脚本在execute_async_script调用期间抛出错误之前应该等待的时间。

喜欢的点个赞❤吧!

   

目录
相关文章
|
4月前
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
656 88
|
2月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
642 0
|
4月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
2月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
295 1
|
2月前
|
SQL 测试技术 数据库
healenium+python+selenium
上次介绍了如何利用healenium+java+selenium来实现selenium的自愈,这次介绍如何healenium+python+selenium。关于healenium+python+selenium网上资料更少,并且甚至是错误的。在著名的书籍《软件测试权威指南中》也是有一定问题的。现在介绍如下
144 4
|
2月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
203 0
|
2月前
|
数据采集 Web App开发 机器学习/深度学习
Selenium爬虫部署七大常见错误及修复方案:从踩坑到避坑的实战指南
本文揭秘Selenium爬虫常见“翻车”原因,涵盖浏览器闪退、元素定位失败、版本冲突、验证码识别等七大高频问题,结合实战案例与解决方案,助你打造稳定高效的自动化爬虫系统,实现从“能用”到“好用”的跨越。
507 0
|
3月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
6月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1100 58
|
5月前
|
数据采集 数据可视化 JavaScript
用Python采集CBC新闻:如何借助海外代理IP构建稳定采集方案
本文介绍了如何利用Python技术栈结合海外代理IP采集加拿大CBC新闻数据。内容涵盖使用海外代理IP的必要性、青果代理IP的优势、实战爬取流程、数据清洗与可视化分析方法,以及高效构建大规模新闻采集方案的建议。适用于需要获取国际政治经济动态信息的商业决策、市场预测及学术研究场景。

推荐镜像

更多