Selenium 4.13: 等待点击后页面完全加载

在使用 Selenium 进行网页自动化测试时,确保页面完全加载对于脚本的可靠性至关重要。点击按钮或链接后,页面可能需要一些时间才能完全加载新的内容。 Selenium 4.13 提供了 WebDriverWait 类,可以帮助我们处理这种情况。

以下是如何使用 WebDriverWait 等待页面完全加载的示例代码:pythonfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC

创建 WebDriver 实例driver = webdriver.Chrome()

打开网页driver.get('https://example.com')

等待页面加载完成wait = WebDriverWait(driver, 10)wait.until(EC.presence_of_element_located((By.TAG_NAME, 'body')))

进行点击操作element = driver.find_element(By.ID, 'my-button')element.click()

等待页面重新加载完成wait.until(EC.staleness_of(element))

执行其他操作

代码解释:

  1. 导入必要的类: - webdriver: 用于创建浏览器实例。 - By: 用于定位元素。 - WebDriverWait: 用于实现显式等待。 - expected_conditions as EC: 提供了一组用于判断页面元素状态的方法。

  2. 创建 WebDriver 实例: 这将启动选择的浏览器。

  3. 打开网页: driver.get() 方法用于导航到目标网页。

  4. 等待初始页面加载: - WebDriverWait(driver, 10) 创建一个最长等待时间为10秒的 WebDriverWait 对象。 - wait.until(EC.presence_of_element_located((By.TAG_NAME, 'body'))) 等待 <body> 元素出现,表明页面基本框架已加载。

  5. 点击操作: 使用 find_element 定位要点击的元素,然后调用 click() 方法。

  6. 等待页面重新加载: - wait.until(EC.staleness_of(element)) 会等待之前点击的元素从DOM树中移除,表示页面已刷新。

  7. 执行其他操作: 页面完全加载后,可以继续执行其他操作。

通过使用 WebDriverWaitexpected_conditions,我们可以确保在页面完全加载后才进行下一步操作,从而提高脚本的稳定性和可靠性。

Selenium 4.13: 等待点击后页面完全加载

原文地址: https://www.cveoy.top/t/topic/I4h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录