아래 3 가지 방법을 찾으십시오.
readyState
페이지 readyState 확인 (안정되지 않음) :
def page_has_loaded(self):
self.log.info("Checking if {} page is loaded.".format(self.driver.current_url))
page_state = self.driver.execute_script('return document.readyState;')
return page_state == 'complete'
wait_for
도우미 기능은 좋지만, 불행히도 click_through_to_new_page
브라우저가 클릭 처리를 시작하기 전에, 우리는 이전 페이지에서 스크립트를 실행하는 관리 경쟁 조건에 개방하고, page_has_loaded
단지 바로 true를 돌려줍니다.
id
새 페이지 ID와 이전 페이지 ID 비교
def page_has_loaded_id(self):
self.log.info("Checking if {} page is loaded.".format(self.driver.current_url))
try:
new_page = browser.find_element_by_tag_name('html')
return new_page.id != old_page.id
except NoSuchElementException:
return False
ID를 비교하는 것이 오래된 참조 예외를 기다리는 것만 큼 효과적이지 않을 수 있습니다.
staleness_of
staleness_of
방법을 사용하여 :
@contextlib.contextmanager
def wait_for_page_load(self, timeout=10):
self.log.debug("Waiting for page to load at {}.".format(self.driver.current_url))
old_page = self.find_element_by_tag_name('html')
yield
WebDriverWait(self, timeout).until(staleness_of(old_page))
자세한 내용은 Harry의 블로그를 확인하십시오 .