Печатайте движущийся текст каждые 5 секунд в Селен Python - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно напечатать текст, который перемещается каждые 5 секунд, HTML-код прилагается ниже:

HTML:

<span class="cd-words-wrapper" style="width: 1170px;">
    <b class="is-hidden">Test</b>
    <b class="is-hidden">Test</b>
    <b class="is-visible">Test</b>
    <b class="is-hidden">Test</b>
</span>

Мой код Python:

 Text = driver.find_elements_by_xpath(self.header)
        time.sleep(5)
        print(Text.text)

Выше указан неправильный способ получения текста.Пожалуйста, помогите мне разобраться в этом.

1 Ответ

0 голосов
/ 11 декабря 2018

Если вы хотите напечатать текст после его появления в новом узле b, попробуйте следующий код:

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

while True:
    text_node = WebDriverWait(driver, 10).until(visibility_of_element_located((By.CSS_SELECTOR, '.cd-words-wrapper > .is-visible')))
    print(text_node.text)
    WebDriverWait(driver, 10).until(lambda driver: text_node.get_attribute('class') == "is-hidden")

Если вы хотите просто напечатать все текстовые узлы:

for text_node in driver.find_elements_by_css_selector('.cd-words-wrapper > b'):
    print(text_node.get_attribute('textContent'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...