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

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

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

Вопрос, корректна ли такая реализация? Разумнее ведь сделать одную общую функцию, которая будет принимать требуемый локатор. Но в таком случае, локатор придется передавать из самого тест-кейса. Прошу разъяснить, как правильно делать.
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@SvinkaBacilka
недоMiddle QA engineer
Попробуй искать по имени тега '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.
Инпуты - часть одной большой формы?
Они могут заполняться в каком-то произвольном порядке, или заполняются только все сразу?

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

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

Войти через центр авторизации
Похожие вопросы
IT HUNT Москва
от 180 000 до 250 000 ₽
Acme Crypto Corp Нижний Новгород
от 90 000 до 150 000 ₽
от 2 900 до 4 150 €
06 апр. 2020, в 06:13
2000 руб./за проект
05 апр. 2020, в 23:37
1000 руб./за проект