자동화 스크립트의 다른 단계로 이동하기 전에 특정 조건을 기다리도록 웹드라이버에 지시하기 위해 명시적 대기가 적용됩니다.
명시적 대기는 예상_조건과 함께 WebDriverWait 클래스를 사용하여 구현됩니다. expected_conditions 클래스에는 WebDriverWait 클래스와 함께 사용할 미리 작성된 조건 그룹이 있습니다.
- 경고_현재_존재
- 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
- 가시성_
- staleness_of
- 클릭할 수 있는 요소
- invisibility_of_element_located
- element_to_be_selected
페이지의 Team 링크를 클릭하면 사용할 수 있는 Team @ Tutorials Point 텍스트를 기다리겠습니다.
팀 링크를 클릭하면 Team @ Tutorials Point라는 텍스트가 나타납니다.
예시
코드 구현
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') #url launch driver.get("https://www.tutorialspoint.com/about/about_careers.htm") #identify element l = driver.find_element_by_link_text('Team') l.click() #expected condition for explicit wait w = WebDriverWait(driver, 5) w.until(EC.presence_of_element_located((By.TAG_NAME, 'h1'))) s = driver.find_element_by_tag_name('h1') #obtain text t = s.text print('Text is: ' + t) #driver quit driver.quit()
출력