#java #selenium #selenium-webdriver
#Ява #селен #селен-веб-драйвер
Вопрос:
В настоящее время я работаю над набором тестов, и после F12 и проверки элементов у меня есть несколько кнопок, которые не имеют идентификатора, имеют одинаковое имя, они относятся к одному классу, и единственное, что отличается, — это ссылка на страницу, на которую они вас ведут.
Есть ли какой-либо способ, которым я могу указать своему веб-диску выбрать мою конкретную кнопку на основе ссылки/ссылки на кнопку?
Если вопрос кажется новичку, пожалуйста, извините меня, прошло всего 3 недели с тех пор, как я начал писать наборы тестов в Selenium.
Ответ №1:
Вы можете находить элементы с помощью XPath или селектора CSS на основе любой комбинации любых атрибутов. Также он может содержать зависимость от какого-либо родительского элемента(ов).
Например, если ваши HTMLы кнопок выглядят следующим образом:
lt;button class="button" href="link1"gt; lt;button class="button" href="link2"gt; lt;button class="button" href="link3"gt;
Вы можете использовать следующие пути XPath
//button[@hef='link1'] //button[@hef='link2'] //button[@hef='link3']
Или селекторы CSS
button[href='link1'] button[href='link2'] button[href='link3']
В случае href
, если значения атрибутов очень длинные или частично изменяются, вы все равно можете создавать локаторы на основе или частично значений, например, следующих
XPaths
//button[contains(@hef,'link1')] //button[contains(@hef,'link2')] //button[contains(@hef,'link3')]
Или селекторы CSS
button[href*='link1'] button[href*='link2'] button[href*='link3']
Комментарии:
1. Я нашел расширение chrome, которое помогает мне найти путь xpath к кнопке, как в этом случае. Ваши объяснения имели гораздо больше смысла, и я действительно попробовал, и это сработало. Мне удалось завершить тест, нажав на правильную кнопку. Большое вам спасибо за вашу помощь.
2. Ни один автоматический инструмент не даст вам правильный локатор в большинстве случаев, вам придется научиться создавать локаторы самостоятельно
3. Ладно, понял. Затем я постараюсь в качестве наилучшей практики найти элементы, основанные на том, что вы дали мне здесь сегодня. Спасибо вам за ваш вклад!