Как ждать элемента после обновления страницы, который ранее присутствовал через Selenium и Python - PullRequest
1 голос
/ 13 марта 2019

Аналогичный вопрос был задан в другой теме

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

browser = webdriver.Firefox()
element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "element_id"))

Этот ответ не работает, потому что элемент уже существовал на предыдущей странице. Я хочу дождаться окончания загрузки страницы, а затем захватить элемент.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Вы можете использовать javascriptexecutor, если хотите дождаться загрузки страницы и затем выполнить дальнейшие шаги. Это вернет « complete », только если страница полностью загружена.

driver.execute_script("return document.readyState")=="complete"
0 голосов
/ 13 марта 2019

Поскольку элемент существовал на предыдущей странице, и теперь вы хотите получить элемент после завершения загрузки страницы, вы можете сначала вызвать WebDriverWait для staleness_of (element) , а затем один раз.снова для element_to_be_clickable (locator) , и вы можете использовать следующее решение:

WebDriverWait(browser, 10).until(EC.staleness_of(driver.find_element_by_id("element_id"))
element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, "element_id"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...