Я инженер по обеспечению качества программного обеспечения, и я пытаюсь создать автоматизированный тест для веб-страницы.Выбор различных веб-элементов в Selenium
Некоторые фона:
Рамки Селен, что моя компания использует только позволяет использовать пути X, сохраненные в качестве объекта затем использовать уже существующие методы, как «клик (SomeObject)» или «ввести (SomeObject)»и т.д. ...
Проблема:
в настоящее время я пытаюсь создать тест, который выбирает несколько кнопок, которые находятся на том же классе. Есть 6 кнопок набора, которые мне нужно выбрать. Теперь я могу это сделать, но с помощью:
`//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[1]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[2]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[3]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[4]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[5]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[6]/div/a`
-However это только временный, потому что тест потерпит неудачу позже вниз по дороге, когда кнопка удаляется ... Я разговаривал с командой разработчиков о добавлении Unique ID каждой кнопки. Но это не похоже, что это путь, который они хотят идти вниз ...
Возможное решение:
- Можно сузить «сферу» селена?
Например, говоря Селену, чтобы просмотреть конкретный класс вместо всей страницы?
-Мы думаем, что он ищет класс, соответствует определенному тексту, а затем выберите «Установить». Если да, то также возможность комбинирования нескольких X-путь в Что-то вроде ....
//div[@class='col-sm-4'].... //div[contains(.,'Birth Date: Set +')]
Моя мысль в том, что я мог бы создать Xpath, что сужает что Selenium будет фактически просматриваться ..
- Поиск класса
- поиск по тексту "Дата рождения"
- Выбор Set Button
Вот некоторые HTML, когда я инспектировать страницу с
почему использование потомка вместо ' // '? – becixb
Xpath // div [@ class = 'col-sm-4' и содержит (текст(), 'Дата рождения')] // a [1] также должен работать. Однако в случае, если по какой-либо причине это не сработает, тогда потомок может быть использован для поиска нужной ссылки. – Mahipal