Как извлечь текст из div в Selenium, используя Python, когда новые div добавляются каждые 1 секунду?
Исходя из вышеприведенного ответа, у меня есть следующий код:
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium import webdriver
chrome_path = r"C:\scrape\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get("https://website.com/")
# Get current divs
messages = driver.find_elements_by_class_name('div_i_am_targeting')
# Print all messages
for message in messages:
print(message.text)
while True:
try:
# Wait up to minute for new message to appear
wait(driver, 60).until(lambda driver: driver.find_elements_by_class_name('div_i_am_targeting') != messages)
# Print new message
for message in [m.text for m in driver.find_elements_by_class_name('div_i_am_targeting') if m not in messages]:
print(message)
# Update list of messages
messages = driver.find_elements_by_class_name('div_i_am_targeting')
except:
# Break the loop in case no new messages after minute passed
print('No new messages')
break
Отлично работает и захватывает все div на странице по мере их появления, которые соответствуют классу, указанному в div_i_am_targeting
Div на этой HTML-странице генерируются динамически, и один div появляется примерно один разкаждую секунду.
Фактическая структура на странице выглядит следующим образом:
<div class="div_i_am_targeting">
...
...
</div>
<div class="div_i_am_targeting">
...
...
</div>
<div class="div_i_am_targeting">
...
...
</div>
<div class="some_other_div">
...
...
</div>
<div class="div_i_am_targeting">
...
...
</div>
<div class="yet_another_div">
...
...
</div>
<div class="div_i_am_targeting">
...
...
</div>
Так, что в динамически создаваемом контенте между div, на который я сейчас нацеливаюсь, появляются другие элементы div.
Частота div на странице является переменной.
Я не смог найти здесь связанных вопросов или примеров в документации.
Как изменить вышеприведенный код, чтобы он очищал значение более чем одного делителя, например, если я хочу очистить все экземпляры div_i_am_targeting
и some_other_div
впример выше?