Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Giải thích explicit wait trong Selenium WebDriver Python

Explicit wait (chờ rõ ràng) được áp dụng để chỉ dẫn webdriver chờ điều kiện cụ thể trước khi chuyển sang các bước tiếp theo trong kịch bản tự động hóa.

Explicit wait được triển khai dùng lớp WebDriverWait kết hợp với expected_conditions. Lớp expected_conditions có nhóm điều kiện dựng sẵn dùng cùng WebDriverWait.

  • alert_is_present
  • element_selection_state_to_be
  • presence_of_all_elements_located
  • element_located_to_be_selected
  • text_to_be_present_in_element
  • text_to_be_present_in_element_value
  • frame_to_be_available_and_switch_to_it
  • element_located_to_be_selected
  • visibility_of_element_located
  • presence_of_element_located
  • title_is
  • title_contains
  • visibility_of
  • staleness_of
  • element_to_be_clickable
  • invisibility_of_element_located
  • element_to_be_selected

Hãy chờ văn bản "Team @ Tutorials Point" xuất hiện sau khi nhấp link "Team" trên trang.

Giải thích explicit wait trong Selenium WebDriver Python

Khi nhấp link Team, văn bản "Team @ Tutorials Point" xuất hiện.

Giải thích explicit wait trong Selenium WebDriver Python

Ví dụ

Triển khai mã

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome(executable_path='../drivers/chromedriver')
# mở url
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
# xác định element
l = driver.find_element(By.LINK_TEXT, 'Team')
l.click()
# điều kiện chờ explicit
w = WebDriverWait(driver, 5)
w.until(EC.presence_of_element_located((By.TAG_NAME, 'h1')))
s = driver.find_element(By.TAG_NAME, 'h1')
# lấy văn bản
t = s.text
print('Text is: ' + t)
# thoát driver
driver.quit()

Kết quả

Giải thích explicit wait trong Selenium WebDriver Python