У меня есть веб-страница, которая загружает контент динамически, и пока страница загружается, есть вращающееся колесо, я уже нашел решение, чтобы захватить контент, загруженный сразу на страницу, но, похоже, я не могу найти решение, чтобы захватить контент, загруженный позже в DOM.
Что я могу придумать, так это найти элемент с определенным классом вращения этого колеса и подождать, пока он изменится, как только он изменится, чем это означает, что контент загружен в DOM.
IЯ использую Selenium
с Firefox
webdriver
на Ubuntu
.
Вот класс, который я хочу отслеживать:
<div class="wheel spinning"></div>
После загрузки контента вращение колеса останавливаетсяи класс изменяется на:
<div class="wheel"></div>
Любой найдет решение для поиска и отслеживания class="wheel spinning"
, и как только оно будет изменено на class="wheel"
, чтобы продолжить захват данных.
Редактировать:
XPATH фактически решил одну часть решения, вот часть кода
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//*[@class='wheel']))
)
title = driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[3]')
print(title.text)
Но если элемент не появляется в течение 10 секунд, он выходит из строя, теперь, чтобы найти способ повторить попытку снова и снова, покаэлемент присутствует настр.
Есть ли разница в использовании presence_of_element_located((By.XPATH))
и find_element_by_xpath