python+selenium+pytest-(4)_三种等待方式

发布时间 2023-08-24 18:32:11作者: 暮色听雨

强制等待

必须要等待设定时间结束才会执行下一步操作

import time

time.sleep(3)

隐式等待

  • 只用声明一次
  • 隐式等待会在设定的时间内等待元素出现,若出现则会执行下一步操作,若没有出现则会抛出异常-TimeoutException
  • 在整个WebDriver生命周期起作用,即每次查找元素都会等待
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)

显示等待

  • 用在指定元素上
  • 使用类-ExpectedCondition定义的条件来判断元素是否满足条件
  • 每次使用都要编写相应的等待条件
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
element = WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.ID,"myElement")))

driver是webdriver对象
10是最长等待时间
0.5是每0.5秒去查询对应的元素
until后面跟的等待具体条件
EC是判断条件,检查元素是否存在于页面的 DOM 上