Выбор ответа Junior Selenium и WebDriver спрашивают часто обновлено
find_element или find_elements
Вопрос
Нужно проверить, что баннера с ошибкой нет на странице. Что удобнее?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: len(driver.findelements(By.CSSSELECTOR, ".error")) == 0. findelements возвращает пустой список, если элементов нет, это удобно для проверки отсутствия (при неявном ожидании он будет ждать его до таймаута, поэтому его лучше держать нулевым). findelement не возвращает None, он бросает…
Варианты ответа
len(driver.find_elements(By.CSS_SELECTOR, ".error")) == 0правильный ответdriver.find_element(By.CSS_SELECTOR, ".error") is Nonedriver.find_element(...)и ждать, пока тест упадётdriver.find_element(...).is_displayed() == False
Разбор
find_elements возвращает пустой список, если элементов нет, это удобно для проверки отсутствия (при неявном ожидании он будет ждать его до таймаута, поэтому его лучше держать нулевым). find_element не возвращает None, он бросает NoSuchElementException, поэтому второй и четвёртый варианты упадут, если баннера нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.