Как я могу получить этот Xpath

#c# #selenium #cucumber #bdd

#c# #селен #огурец #bdd

Вопрос:

введите описание изображения здесь

У меня есть удостоверение личности для захвата.

 //button[contains(text(),'Delete')][1]   //button[@id='deletebtn']  

но у него есть 10 повторяющихся значений.не могу определить уникальную вещь для захвата элемента.Пожалуйста, помогите мне решить

Комментарии:

1. Они должны быть разными lt;tdgt; , поэтому используйте lt;tdgt; атрибуты

2. трудно помочь вам без html-кода…

3. Привет, Френчи, я добавил Полный HTML-код

Ответ №1:

Поскольку вы не поделились полным HTML-кодом, я предполагаю, что вы хотите использовать первый локатор из 10 совпадений.

Вы можете использовать

 //(button[contains(text(),'Delete')])[1]   

вместо

 //button[contains(text(),'Delete')][1]   

В случае, если вы хотите использовать другой элемент, затем измените номер совпадения. Как показано ниже,

 //(button[contains(text(),'Delete')])[3]   

или

 //(button[contains(text(),'Delete')])[4]   

Примечание: Selenium по умолчанию выбирается первый элемент, если имеется более одного совпадения.

Всегда проверяйте свою xPath консоль Chrome, чтобы убедиться, что она уникальна.

  • Нажмите F12 в Chrome.
  • Перейдите в elements раздел
  • Поиск ( CTRL F )
  • Поместите xpath и посмотрите, будет ли ваш желаемый element выделен 1/1 соответствующим узлом. Это означает, что вы xPath уникальны.

Комментарии:

1. Я попробовал ваш упомянутый код. это правильно, но, к сожалению, это не работает для моего кода. это только захват [1], но я хочу захватить 10-ю строку. Когда я даю //(кнопка[содержит(текст (), «Удалить»)]) [10], она не работает

2. Какую ошибку вы получаете? Вы протестировали локаторы в консоли Chrome?

3. Затем используйте //(button[contains(text(),'Delete')])[10]

4. kendo.all.js:2178 Неизвестный тип транспорта источника данных «GET». не удалось загрузить исходную карту: Не удалось загрузить содержимое

5. Я использовал //(кнопка[содержит(текст (), «Удалить»)]) [10], но она не работает . Выше в комментарии упоминалась ошибка, вызванная.

Ответ №2:

Вы используете неправильный синтаксис для написания xpath на основе индекса.

Правильный синтаксис для XPath на основе индексов-

 (//button[contains(text(),'Delete')])[10]  

PS: Вы можете проверить в SelectorsHub, верен ли ваш xpath или нет.