求个网站你懂我意思是,深圳网络营销技巧,常州哪有做网站,wordpress 幻灯片插件下载更多资料获取
#x1f4da; 个人网站#xff1a;ipengtao.com 在Web自动化测试中#xff0c;等待是至关重要的一环#xff0c;而Selenium提供了丰富的等待设置来确保测试脚本的可靠性和稳定性。本文将深入研究Python Selenium中常用的必备等待设置#xff0c;包括显式等待…
更多资料获取 个人网站ipengtao.com 在Web自动化测试中等待是至关重要的一环而Selenium提供了丰富的等待设置来确保测试脚本的可靠性和稳定性。本文将深入研究Python Selenium中常用的必备等待设置包括显式等待、隐式等待、自定义等待条件等多个方面。通过详实的示例代码将为大家提供全面而深入的学习体验。
显式等待
显式等待是在特定条件下等待某个元素的出现或者消失。以下是一个等待元素可点击的示例
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 显式等待
element WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, example_id))
)element.click()隐式等待
隐式等待是在整个会话中等待元素出现的最长时间。设置一次即可全局生效
from selenium import webdriver# 隐式等待
driver webdriver.Chrome()
driver.implicitly_wait(10)driver.get(https://example.com)
element driver.find_element(By.ID, example_id)自定义等待条件
有时候我们需要根据自定义的条件等待可以使用expected_conditions中的expected_conditions类
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 自定义等待条件
class ElementHasText:def __init__(self, locator, text_):self.locator locatorself.text text_def __call__(self, driver):element_text EC._find_element(driver, self.locator).textreturn self.text in element_textelement_locator (By.ID, example_id)
wait WebDriverWait(driver, 10)
wait.until(ElementHasText(element_locator, Expected Text))多重等待条件
有时我们需要等待多个条件同时满足可以使用expected_conditions中的and_或or_
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 多重等待条件
element_locator (By.ID, example_id)
wait WebDriverWait(driver, 10)
wait.until(EC.and_(EC.element_to_be_clickable(element_locator),EC.visibility_of_element_located(element_locator)
))页面加载状态的等待
在Web自动化测试中页面的加载状态是一个关键考量因素。Selenium提供了expected_conditions中的document_to_be_ready_state来等待页面加载完成
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 页面加载状态的等待
wait WebDriverWait(driver, 10)
wait.until(EC.document_to_be_ready_state(complete))元素存在与可见性等待
除了常规的元素等待有时还需要等待元素的出现或者可见性。以下是一个等待元素存在并可见的示例
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 元素存在与可见性等待
element_locator (By.ID, example_id)
wait WebDriverWait(driver, 10)
element wait.until(EC.visibility_of_element_located(element_locator))Fluent等待
Fluent等待允许在等待期间设置轮询条件增加了等待的灵活性。以下是一个Fluent等待的示例
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import FluentWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException# Fluent等待
wait WebDriverWait(driver, 10)
element FluentWait(driver, timeout10, poll_frequency1, ignored_exceptions[TimeoutException]) \.until(lambda x: x.find_element(By.ID, example_id))异步JavaScript加载的等待
对于异步JavaScript加载的元素可以使用expected_conditions中的invisibility_of_element_located来等待其加载完成
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 异步JavaScript加载的等待
element_locator (By.ID, async_element)
wait WebDriverWait(driver, 10)
wait.until(EC.invisibility_of_element_located(element_locator))总结
在本篇文章中全面深入地探讨了Python Selenium中常用的必备等待设置旨在为Web自动化测试提供更为全面和深入的学习体验。通过详实的示例代码深入介绍了显式等待、隐式等待、自定义等待条件、多重等待条件、页面加载状态的等待、元素存在与可见性等待、Fluent等待以及异步JavaScript加载的等待。这些等待设置不仅仅是简单的时间延迟更是在确保脚本执行的可靠性和稳定性方面的必备工具。
通过显式等待能够精确等待某个特定条件的出现或消失提高了脚本的精准性。隐式等待为整个会话提供了最长等待时间全局有效确保了在查找元素时的超时容忍度。自定义等待条件和多重等待条件则进一步增强了等待的灵活性适应了更多复杂的测试场景。还深入研究了页面加载状态的等待元素存在与可见性等待Fluent等待以及异步JavaScript加载的等待涵盖了更广泛的测试需求。这些等待设置的巧妙应用可以在处理异步加载、提高页面加载的稳定性等方面展现出强大的效果。
总体而言本文为大家提供一个全方位的学习路径使其能够更好地理解和运用Python Selenium中各种等待设置。 Python学习路线 更多资料获取 个人网站ipengtao.com
如果还想要领取更多更丰富的资料可以点击文章下方名片回复【优质资料】即可获取 全方位学习资料包。 点击文章下方链接卡片回复【优质资料】可直接领取资料大礼包。