Selenium + Python Ожидание, пока элемент содержит случайно сгенерированную строку чисел - PullRequest
0 голосов
/ 27 марта 2020

Noob ie здесь с Selenium и Python.

В настоящее время я пытаюсь найти способ найти элемент по XPATH при генерировании любого текста.

randomstring = browser.find_element_by_xpath("//div[@class='lower-text']/div[2]").text 

Это находит правильный текст, который я ищу. Однако, когда реализовано с помощью «try, finally», оно не может быть найдено.

try: 
    element = WebDriverWait(browser, 30).until(
EC.presence_of_element_located((By.XPATH, "//*[//div[@class='lower-text']/div[2]" and text() != ""]")
    )
finally:
    randomstring = browser.find_element_by_xpath("//div[@class='lower-text']/div[2]").text

1 Ответ

0 голосов
/ 27 марта 2020

text() != "" не будет работать в xpath. Вы можете получить элемент так же, как вы извлекаете его, используя исходный xpath.
Если вы хотите поместить код в try catch, вы можете сделать это следующим образом:

try:
    element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@class='lower-text']/div[2]")))
    print(element.text)
except NoSuchElementException:
    # Element not present
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...