南和企业做网站,爱站网是什么平台,价格低是什么意思,购物网站简介环境#xff1a;
Python 3.8
selenium3.141.0
urllib31.26.19
Chromium 109.0.5405.0 #xff08;32 位#xff09;
# 1 固定等待#xff08;time#xff09;
# 固定待是利用python语言自带的time库中的sleep()方法#xff0c;固定等待几秒。
# 这种方式会导致这个脚本运…
环境
Python 3.8
selenium3.141.0
urllib31.26.19
Chromium 109.0.5405.0 32 位 # 1 固定等待time
# 固定待是利用python语言自带的time库中的sleep()方法固定等待几秒。
# 这种方式会导致这个脚本运行时间过长不到万不得已尽可能少用。
# 注脚本调试过程时还是可以使用的方便快捷
# -*- coding: UTF-8 -*-from selenium import webdriver
import timedriver webdriver.Chrome()
driver.get(https://www.baidu.com/)
# 设置固定等待
time.sleep(2)
driver.quit()# 2 隐式等待implicitly_wait()
# webdriver类提供了implicitly_wait()方法来配置超时时间。
# 隐式等待表示在自动化实施过程中为查找页面元素或者执行命令设置一个最长等待时间。
# 如果在规定时间内页面元素被找到或者命令被执行完成则执行下一步否则继续等待直到设置的最长等待时间截止
# 注隐式等待的好处是不用像固定等待方法一样死等时间N秒可以在一定程度上提升测试用例的执行效率。
# 不过这种方法也存在一定的弊端那就是程序会一直等待整个页面加载完成
# 也就是说浏览器窗口标签栏中不再出现转动的小圆圈才会继续执行下一步。
# -*- coding: UTF-8 -*-from selenium import webdriverdriver webdriver.Chrome()
# 设置隐式等待
driver.implicitly_wait(30)
driver.get(https://www.baidu.com/)
driver.quit()
# 3 显示等待WebDriverWait()类
# 显示等待设置一个等待时间和一个条件在规定时间内每隔一段时间查看下条件是否成立
# 如果成立那么程序就继续执行否则就提示一个超时异常TimeoutException。
# 通常情况下 WebDriverWait 类会结合 ExpectedCondition 类一起使用。# 代码 1
# -*- coding: UTF-8 -*-from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWaitdriver webdriver.Chrome()
driver.get(http://www.baidu.com)
# 最长超时时间设置为10秒默认步长为0.5秒默认抛出 NoSuchElementException 异常
element WebDriverWait(driver, 10, 0.5).until(lambda driver: driver.find_element_by_id(kw))
element.send_keys(selenium)
driver.quit()
# 代码 2 # -*- coding: UTF-8 -*-from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(http://www.baidu.com)
# 最长超时时间设置为 10 秒默认步长为0.5秒默认抛出 NoSuchElementException 异常
element WebDriverWait(driver, 10, 0.5).until(lambda driver: driver.find_element(By.ID, kw))
element.send_keys(selenium)
driver.quit() # -*- coding: UTF-8 -*-from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(http://www.baidu.com)element WebDriverWait(driver, 10, 0.5).until(expected_conditions.presence_of_element_located((By.ID, kw)))
id id
param (By.ID, id)
element WebDriverWait(driver, 10, 0.5).until(expected_conditions.presence_of_element_located(param))element.send_keys(selenium)
driver.quit() # 等待元素出现
element WebDriverWait(driver, 10, 0.5).until(lambda driver: driver.find_element_by_id(kw))
element.is_displayed()# 等待元素消失
is_disappeared WebDriverWait(driver, 10, 0.5), (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(someId).is_displayed())from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import selenium.webdriver.support.expected_conditions as EC
import selenium.webdriver.support.ui as ui# 一直等待某元素可见默认超时10秒
def is_visible(locator, timeout10):try:ui.WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.XPATH, locator)))return Trueexcept TimeoutException:return False# 一直等待某个元素消失默认超时10秒
def is_not_visible(locator, timeout10):try:ui.WebDriverWait(driver, timeout).until_not(EC.visibility_of_element_located((By.XPATH, locator)))return Trueexcept TimeoutException:return False# 调用
is_not_visible(//input[inputsearch-error])参考
PythonSelenium自动化-设置等待三种等待方法
https://www.cnblogs.com/xiao-xue-di/p/11531917.htmlSelenium使用之——添加等待时间的三种方式
https://blog.csdn.net/qq_28284093/article/details/80117206Selenium 三种等待方式详解 强制等待、隐式等待、显示等待
https://www.cnblogs.com/hls-code/p/16051659.htmlselenium WebDriverWait类等待机制的实现
https://cloud.tencent.com/developer/article/1736313selenium.webdriver.support.ui 和selenium.webdriver.support.wait的区别
https://blog.csdn.net/Charley_Leo/article/details/108546433