#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 или нет.