企业做可信网站认证的好处,手机制作3d动画,一元云购网站开发,中山好的做网站的公司selenium查找网页如何处理网站资源一直加载失败的情况 selenium获取一个网页#xff0c;某个网页的资源卡了很久还没有加载成功#xff0c;如何放弃这个卡的数据#xff0c;继续往下走
有2钟方式。通常可以采用下面的方式一来处理这种情况
方式一、WebDriverWait
这种方式…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 Trueexcept 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 Trueexcept 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()