Поиск элемента с именем класса с пробелами не работает (селен) - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь найти этот элемент на странице входа, когда пользователь вводит неправильный пароль

<div class="form-input-validation is-error" role="alert"></div>

Я пытался

driver.find_element_by_css_selector(".form-input-validation.is-error")

, но я получаю ' нет такого элемента: невозможно найти элемент 'error

Ответы [ 2 ]

3 голосов
/ 12 марта 2020

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

WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@class='form-input-validation is-error']")))

Примечание. Необходимо добавить следующие операции импорта:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 12 марта 2020

Имена классов не могут иметь пробелов, тег div имеет два класса (разделенных пробелом .form-input-validation и is-error). Используйте одно или другое, но я бы предложил использовать .is-error, потому что он будет активирован только при наличии ошибки.

driver.find_element_by_css_selector(".is-error")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...