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 调试远程服务器程序的过程,通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2021-08-08关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
这篇文章主要介绍了关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11
最新评论