sleep 线性等待 (强制等待)
implicitly_wait 隐式等待:全局等待,自动轮询查找(默认0.5秒)
WebDriverWait 显式等待:针对某个具体操作的元素,结合 until 和until not使用
import time
from selenium import webdriver
from selenium.webdriver.common import by
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions # 结合显式等待,判断元素是否存在等
from selenium.webdriver.support.wait import WebDriverWait
class TestWait:
def setup(self):
self.driver = webdriver.Chrome()
self.driver.get('https://www.runoob.com/')
self.driver.maximize_window()
self.driver.implicitly_wait(3) # 全局隐式等待三秒
def test_wait(self):
self.driver.find_element(By.XPATH, '//*[@class="current"]').click()
# from selenium.webdriver.common.by import By
WebDriverWait(self.driver, 10).until( # 10秒为等待时间
expected_conditions.element_to_be_clickable((By.XPATH, '//*[@class="row"]')))
# 显式等待 from selenium.webdriver.support.wait import WebDriverWait
self.driver.find_element(By.XPATH, '//*[@title="菜鸟笔记"]').click()
# time.sleep(3)
# 线性等待
expected_conditions 方法