Подтвердить что ты не робот

Xpath "заканчивается-с" не работает

Я пытаюсь найти элемент ввода с динамическим именем id, всегда заканчивающимся "register". До сих пор я пробовал это

"//input[@id[ends-with(.,'register')]]"

и этот

"//input[ends-with(@id,'register')]"

ни один из них не приводит к элементу. Что я делаю не так? В то же время это работает:

"//input[@id[contains(.,'register')]]"

Здесь часть источника:

<td class="input">
<input id="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" name="m.f0.menu.f2.volumeTabs.BLOCK_COMMON.tcw.form.register" class="aranea-checkbox" type="checkbox"> </td>
4b9b3361

Ответ 1

Функция ends-with является частью xpath 2.0, но браузеры (вы указываете, что вы тестируете с помощью chrome) обычно поддерживают только 1.0. Таким образом, вам придется реализовать его самостоятельно с комбинацией string-length, substring и равно

substring(@id, string-length(@id) - string-length('register') +1) = 'register'

Ответ 2

@Ian Roberts Could you please ellaborate your answer like how should I use the function

substring(@id, string-length(@id) - string-length('register') +1) = 'register'