Python, Selenium, ожидая изменения текста элемента - PullRequest
0 голосов
/ 14 октября 2019

Как часть моих тестов автоматизации, мне необходимо отслеживать изменения text элемента. Изменения могут происходить с интервалом от 1 до 10 секунд. Прямо сейчас я просто проверяю свойство text в цикле:

from selenium import webdriver
import time

selenium_driver = webdriver.Chrome()
selenium_driver.get(url)

previous_value = None
while True:
    current_value = selenium_driver.find_elements_by_class_name("Cval")
    if previous_value:
        if (current_value.text != previous_value):
            #a new value is present.
            print("new value :", current_value.text)
            previous_value = current_value.text
    else:
        #first time running the loop.
        print("new value :", current_value.text)
        previous_value = current_value.text

    time.sleep(1) #wait 1 second before checking again.

Интересно, есть ли лучший / иной способ добиться этого (например, сказать селену, чтобы сигнализировать нам, когда значение меняется, может быть,).

1 Ответ

0 голосов
/ 14 октября 2019

Вы должны попробовать ожидаемые условия примерно так:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)

wait.until(EC.text_to_be_present_in_element_value(driver.find_element_by_class_name("Cval"),"You Expected Text"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...