Как работать с однотипными элементами (Selenium Webdriver)?

Условная задача: есть 100 инпутов на странице, которые отличаются только id. Требуется в каждый из них вводить текст и нажимать на кнопку.

Сейчас использую следующий подход:
1) имеется отдельный локатор для каждого инпута
2) имеется отдельная функция для каждого локатора, с идентичным кодом, которая обрабатывает и возвращает лишь разные локаторы
3) заполнение каждого инпута - отдельный кейс

Вопрос, корректна ли такая реализация? Разумнее ведь сделать одную общую функцию, которая будет принимать требуемый локатор. Но в таком случае, локатор придется передавать из самого тест-кейса. Прошу разъяснить, как правильно делать.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
SvinkaBacilka
@SvinkaBacilka
личинка front-end Developer-а
Попробуй искать по имени тега 'input', потом получать из имени атрибут айди и уже передавать его функции.
Получить атрибут можно таким образом:
web_elements = driver.find_elements_by_tag_name('input')
for element in web_elements:
    element_id = element.get_attribute('id')
    your_function(element_id)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
freiman
@freiman
Тестировщик 12+
It depends.
Инпуты - часть одной большой формы?
Они могут заполняться в каком-то произвольном порядке, или заполняются только все сразу?

Если это одна большая форма и заполняется полностью, то можно пройтись итеративно в одном методе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы