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>
Ответы
Ответ 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'