selenium查找网页出现加载卡顿或失败的解决方法

 更新时间:2023年10月05日 08:01:43   作者:虚坏叔叔  
这篇文章主要为大家详细介绍了selenium查找网页时如何处理网站资源一直加载非常卡顿或者失败的情况,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

selenium获取一个网页,某个网页的资源卡了很久还没有加载成功,如何放弃这个卡的数据,继续往下走

有2钟方式。通常可以采用下面的方式一来处理这种情况

方式一、WebDriverWait

这种方式对于资源比较多比较复杂的网页比较合适,比如有些图片在国外,一直加载不出来。mail.com就是这样

当网页15秒还没有加载完成,此时代码不管有没有找到元素都会继续往下走,:

  • 如果没有找到元素就会抛异常。
  • 如果找到元素,就会点击

这个时候,如果抛异常。可以多尝试即便,直到不抛异常即可继续往下走

    def ClickElementByXpath(self, brower, xPath):
        try:
            brower.implicitly_wait(5)
            self.insert_text_to_last_line(self.log_pass_file, xPath)
            result = WebDriverWait(brower, 15).until(EC.presence_of_element_located((By.XPATH, xPath)))
            result.click()
            return True
        except Exception as e:
            print('exception timeout!!!')
            return False

方式二、find_element

这种方式适合资源能快速加载完成的网站。

find_element会等到网站所有的资源全部加载完成后,再继续往下执行,这样的话更稳定,但对于有些网站资源本身很卡,就会一直卡住了,导致卡非常久,最后脚本运行失败。

def ClickElementByXpath(self, brower, xPath):
    try:
        brower.implicitly_wait(55)
        self.insert_text_to_last_line(self.log_pass_file, xPath)
        #element_input = brower.find_element_by_xpath(xPath)
        element_input = brower.find_element(By.XPATH, xPath)
        element_input.click()
        return True
    except Exception as e:
        print('exception timeout!!!')
        return False

是否可以设置超时时间 当元素的点击后 ,不等页面加载完成,接着往下走

在Selenium中,可以使用WebDriver的set_page_load_timeout方法来设置页面加载的超时时间,但是这个设置通常是应用于整个页面的加载,而不是单个元素的点击操作。如果你希望在点击元素后不等待页面加载完成,而是继续执行后续操作,可以采取以下方法:

使用set_page_load_timeout:你可以设置一个较短的页面加载超时时间,以便在点击元素后等待较短的时间。然后,可以在捕获超时异常后,继续执行后续操作。

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
# 创建 WebDriver 实例
driver = webdriver.Chrome()
# 设置页面加载超时时间为5秒
driver.set_page_load_timeout(5)
try:
    # 打开网页
    driver.get("https://example.com")
    # 找到要点击的元素
    element = driver.find_element_by_id("my_element_id")
    # 点击元素
    element.click()
except TimeoutException:
    print("页面加载超时")
# 在这里可以继续执行后续操作,而不用等待页面加载完成
# 关闭 WebDriver
driver.quit()

以上就是selenium查找网页出现加载卡顿或失败的解决方法的详细内容,更多关于selenium查找网页的资料请关注脚本之家其它相关文章!

相关文章

  • PyCharm 2021.2 (Professional)调试远程服务器程序的操作技巧

    PyCharm 2021.2 (Professional)调试远程服务器程序的操作技巧

    本文给大家分享用 PyCharm 2021 调试远程服务器程序的过程,通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • Python中的两个列表数值加法

    Python中的两个列表数值加法

    这篇文章主要介绍了Python中的两个列表数值加法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python决策树之CART分类回归树详解

    python决策树之CART分类回归树详解

    这篇文章主要为大家详细介绍了python决策树之CART分类回归树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 关于pyinstaller 打包多个py文件的问题

    关于pyinstaller 打包多个py文件的问题

    这篇文章主要介绍了pyinstaller 打包多个py文件及遇到的问题,本文通过实例代码给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Python3操作读写CSV文件使用包过程解析

    Python3操作读写CSV文件使用包过程解析

    这篇文章主要介绍了Python3操作CSV文件使用包过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python超详细讲解元类的使用

    Python超详细讲解元类的使用

    在Python里一切都是对象(object),基本数据类型,如数字,字符串,函数都是对象。对象可以由类(class)进行创建。那么既然一切都是对象,那么类是对象吗?是的,类也是对象,那么又是谁创造了类呢?答案也很简单,也是类,一个能创作类的类,称之为(type)元类
    2022-06-06
  • python中bottle使用实例代码

    python中bottle使用实例代码

    这篇文章主要介绍了python bottle使用实例,主要是搞懂python中如何来组织包,如何调用包,如何读取配置文件,连接数据库,设置路由,路由分组,具体示例代码跟随小编一起看看吧
    2021-08-08
  • Python+Opencv答题卡识别用例详解

    Python+Opencv答题卡识别用例详解

    这篇文章主要为大家详细介绍了Python+Opencv答题卡识别用例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 对于Python中线程问题的简单讲解

    对于Python中线程问题的简单讲解

    这篇文章主要介绍了对于Python中线程问题的简单讲解,线程一直是Python编程当中的热点问题,而本文没有涉及GIL线程锁方面的内容,需要的朋友可以参考下
    2015-04-04
  • 关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题

    关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题

    这篇文章主要介绍了关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11

最新评论