[selenium]等待

简介: [selenium]等待

前言

当网络不稳定或应用页面加载有问题,可以设置等待,避免网络问题导致找不到元素等异常。

隐式等待

隐式等待设置的是最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束。

隐式等待在driver的整个生命周期都有效,初始化的时候设置一次即可。

# 隐式等待10秒
driver.implicitly_wait(10)

显式等待

from selenium.webdriver.support.ui import WebDriverWait
# 使用js的方式等待页面加载
# 最长显式等待10秒
WebDriverWait(driver, 10).until(lambda driver: driver.execute_script('return document.readyState') == 'complete')
print("页面加载完成")
driver.find_element(by=By.CSS_SELECTOR, value="...").click()
# 使用期望条件
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver,timeout).until(EC.presence_of_element_located((By.ID, "query")))

EC期望条件

条件 说明
title_is title是否已出现
title_contains title中是否包含某些字符
presence_of_element_located 元素是否已被加载到dom树,并不代表元素一定可见
visibility_of_element_lcoated 元素是否已被加载到dom树且可见
visibility_of 元素是否可见
presence_of_all_elements_located 是否有至少一个元素存在于dom树
visibility_of_any_elements_located 是否至少有一个元素可见
text_to_be_present_in_element 元素是否包含预期字符
text_to_be_present_in_element_value 元素的属性值是否包含预期字符
frame_to_be_available_and_switch_to_it frame是否可切换进去
invisibility_of_element_located 元素是否存在于dom或不可见
element_to_be_clickable 元素是否可见且可点击
staleness_of 等待元素从dom中移除
element_selection_state_to_be 元素选中状态是否符合预期
element_located_selection_state_to_be 元素选中状态是否符合预期
alert_is_present 页面似乎存在alert
相关文章
|
Web App开发 数据采集 前端开发
什么是Selenium
什么是Selenium
234 0
|
4月前
|
Web App开发 前端开发
Selenium WebDriver
【8月更文挑战第9天】
58 7
|
5月前
|
Python
安装selenium
安装selenium
55 0
|
7月前
|
Web App开发 IDE 测试技术
Selenium WebDriver使用
Selenium WebDriver使用
74 1
|
7月前
|
Java 测试技术 持续交付
深入理解与应用Selenium WebDriver进行自动化测试
【4月更文挑战第25天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速市场发布的关键步骤。Selenium WebDriver作为业界广泛采用的自动化测试工具之一,提供了一种灵活且高效的方式来模拟用户与Web应用程序交互。本文将探讨Selenium WebDriver的核心概念、架构以及实际应用中的技巧和最佳实践。通过深入分析其工作原理及常见问题解决方案,旨在帮助测试工程师提升测试效率,确保测试结果的准确性和可靠性。
95 1
|
Web App开发 Java 测试技术
selenium-介绍和安装
selenium-介绍和安装
|
7月前
|
Web App开发 Shell Python
|
Web App开发 前端开发 JavaScript
selenium使用总结
selenium使用总结
65 0
|
Web App开发 JavaScript 测试技术
Selenium Webdriver 简易教程2
Selenium Webdriver 简易教程2
132 0