selenium查找网页如何处理网站资源一直加载非常卡或者失败的情况

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中,可以使用WebDriverset_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()
相关推荐
霍格沃兹测试学院-小舟畅学2 小时前
Google 开源 ARTEMIS:AI Agent 如何接管 Android 真机测试?
人工智能·测试工具
Liaiyang662 小时前
# 自研 AST 容错初筛工具:横向评测 Django、PyTorch、TensorFlow 三大开源 Python 框架异常收容风险
python·测试工具·自动化·开源软件·代码规范·devops·代码复审
霍格沃兹测试学院-小舟畅学4 小时前
我用 AI 把 Swagger 变成 500 条 pytest 用例,回归从 3 天到 3 小时
人工智能·测试工具
奔跑中的小象1 天前
GuideLLM 压测实战指南:给大模型推理服务做一次完整 SLA 评估
测试工具·guidellm
cpolar技术支持1 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
测试狗科研平台2 天前
材料热传导能力表征——热导率计算方法与流程解析
科技·测试工具·材料工程
Luminbox紫创测控2 天前
GB/T 34515—2026新规航天热平衡试验:太阳模拟器该怎么选
测试工具·安全性测试·测试标准·航天器热平衡
蒸鱼Yuzheng2 天前
Unity 与 Unreal 测试工具怎么回答:Profiler、日志、自动化与证据链
测试工具·unity·性能分析·游戏测试·unrealengine
匠测AI说3 天前
XCUITest 自动化全解:同进程白盒、XCTest 架构、自动同步机制与 iOS 端选型指南
测试工具·ios·自动化