WebDriverWait가 예상대로 응답하지 않음
Selenium의 WebDriverWait는 작업을 진행하기 전에 특정 조건이 충족될 때까지 기다리도록 설계되었습니다. 그러나 어떤 경우에는 주어진 시나리오에 설명된 대로 예상대로 작동하지 않을 수 있습니다.
문제는 새로 열린 창에서 요소를 기다릴 때 기대의 선택에 있습니다. 원본 코드는 요소가 DOM에 존재하는지 확인하지만 가시성이나 상호 작용성을 보장하지 않는 존재_of_요소_위치() 메서드를 사용합니다. 요소가 아직 완전히 로드되지 않았거나 보기에서 숨겨져 있으면 오류가 발생할 수 있습니다.
이 문제를 해결하기 위해 사용해야 할 적절한 기대치는 element_to_be_clickable()입니다. 계속. 이는 완전히 초기화하는 데 시간이 걸릴 수 있는 새로 열린 창에 중요합니다.
구현:
원래 WebDriverWait 문을 다음으로 바꾸세요.
try: myElem = WebDriverWait(self.browser, delay).until(EC.element_to_be_clickable((By.XPATH, xpath)))
element_to_be_clickable()을 사용하면 WebDriverWait는 새 창은 표시될 뿐만 아니라 상호작용도 가능합니다. 이렇게 하면 새로 열린 창에서 요소를 선택할 때 간헐적으로 실패하는 문제가 해결됩니다.
기대 방법 이해:
참고로 관련 기대 방법의 정의는 다음과 같습니다. Selenium:
위 내용은 새 Windows를 처리할 때 Selenium WebDriverWait가 예상대로 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!