#python #jquery #selenium #bootstrap-4
Вопрос:
Я пытаюсь сделать снимок экрана после завершения загрузки страницы и выполнения всего jquery. Страница загружается в IE, Edge и FireFox, но все три браузера иногда немного замедляют работу jquery, и я получаю наглядное изображение работы jquery.
start_time = time.perf_counter()
ClickActionElement = Utility_Element_Verify.ID_Element(self,
ElementID = ElementID,
ElementDescription = ElementDescription)
webdriver.ActionChains(self.driver).move_to_element(ClickActionElement).perform()
webdriver.ActionChains(self.driver).move_to_element(ClickActionElement).click(ClickActionElement).perform()
WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.ID , WaitElementID)))
end_time = time.perf_counter()
time_elapsed = (end_time - start_time)
self.TestEventLog = "<br />LoadTime: Admin page and the Specific Ajax was completed before: " str(time_elapsed) " seconds"
Что мне сделать, чтобы убедиться, что jquery все сделано здесь, прежде чем я сделаю снимок экрана?
Utility_Capture_Screen.CaptureScreen(self) # sometimes it's to fast
Изображение сохраняется, но иногда jquery не завершен. Как я могу определить, что jquery выполнен?
Ответ №1:
Проверьте, завершен ли jQuery, используя jQuery.active
статус. Внутри вашего WebDriverWait
использования lambda
для проверки статуса jQuery.
wait = WebDriverWait(driver, 10)
wait.until(lambda d: d.execute_script('return jQuery.active == 0'))