[Java][Селен] Как найти и отправить клики на кнопку с тем же именем, что и у других кнопок во внешнем интерфейсе

#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. Ладно, понял. Затем я постараюсь в качестве наилучшей практики найти элементы, основанные на том, что вы дали мне здесь сегодня. Спасибо вам за ваш вклад!