📜  selenium 等待秒 (1)

📅  最后修改于: 2023-12-03 15:34:54.834000             🧑  作者: Mango

Selenium等待秒

Selenium是一个自动化测试工具,它可以模拟用户在浏览器中操作,如点击和输入等。Selenium可以用于测试网页和应用程序的可靠性、性能和稳定性。其中,等待是Selenium中的一个重要概念,可以保证测试用例的正确性和可靠性。

等待类型

Selenium中的等待可以分为三种类型:

  • 隐式等待:在代码中指定等待时间。默认等待时间为0秒。如果元素没有立即找到,则会超时。建议使用隐式等待,在代码中统一指定等待时间。
  • 显式等待:在代码中指定等待条件,如元素是否可见、是否可点击等。
  • 异步等待:指等待异步请求的返回,直到异步请求返回特定数据。
等待代码
隐式等待
from selenium import webdriver

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

driver.get("http://www.baidu.com")

elem = driver.find_element_by_name("wd")
elem.send_keys("Selenium")
elem.submit()

driver.quit()
显式等待
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()

driver.get("http://www.baidu.com")

# 等待元素出现
element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.NAME, "wd"))
    )

element.send_keys("Selenium")
element.submit()

driver.quit()
异步等待
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import staleness_of

options = Options()
options.add_argument("--headless")
service = Service("path/to/chromedriver")
driver = webdriver.Chrome(service=service, options=options)

driver.get("http://www.baidu.com")

# 等待页面加载完成
WebDriverWait(driver, 10).until(staleness_of(driver.find_element(By.TAG_NAME, "html")))

driver.quit()
小结

以上就是Selenium中的三种等待方式。在编写自动化测试用例时,合理地使用等待是非常重要的,可以通过等待来保证测试用例的正确性和可靠性。