Выбор ответа Junior Selenium и WebDriver обновлено
Элемент внутри iframe
Вопрос
Форма оплаты встроена в iframe. find_element не находит поле номера карты. Что сделать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: switchto.frame(...), после работы switchto.defaultcontent(). Контекст поиска Selenium ограничен текущим документом.
Варианты ответа
switch_to.frame(...), после работыswitch_to.default_content()правильный ответ- Увеличить неявное ожидание: поле во фрейме грузится дольше основной формы
- Искать поле по XPath от корня
/html, он проходит сквозь фреймы - Открыть адрес фрейма в новой вкладке и заполнить поле там
Разбор
Контекст поиска Selenium ограничен текущим документом. Пока не переключишься во фрейм, его элементов не видно, никакое ожидание и смена вида локатора не помогут. Вкладки тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.