Selenium 4.13: 等待点击后页面完全加载
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))
执行其他操作
代码解释:
-
导入必要的类: -
webdriver: 用于创建浏览器实例。 -By: 用于定位元素。 -WebDriverWait: 用于实现显式等待。 -expected_conditions as EC: 提供了一组用于判断页面元素状态的方法。 -
创建 WebDriver 实例: 这将启动选择的浏览器。
-
打开网页:
driver.get()方法用于导航到目标网页。 -
等待初始页面加载: -
WebDriverWait(driver, 10)创建一个最长等待时间为10秒的WebDriverWait对象。 -wait.until(EC.presence_of_element_located((By.TAG_NAME, 'body')))等待<body>元素出现,表明页面基本框架已加载。 -
点击操作: 使用
find_element定位要点击的元素,然后调用click()方法。 -
等待页面重新加载: -
wait.until(EC.staleness_of(element))会等待之前点击的元素从DOM树中移除,表示页面已刷新。 -
执行其他操作: 页面完全加载后,可以继续执行其他操作。
通过使用 WebDriverWait 和 expected_conditions,我们可以确保在页面完全加载后才进行下一步操作,从而提高脚本的稳定性和可靠性。
原文地址: https://www.cveoy.top/t/topic/I4h 著作权归作者所有。请勿转载和采集!