web-dev-qa-db-fra.com

Xpath "termine avec" ne fonctionne pas

J'essaie de trouver un élément d'entrée avec un nom d'identifiant dynamique se terminant toujours par "register". Jusqu'ici j'ai essayé

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

et ça

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

aucun de ceux-ci ne résulte en un élément. Qu'est-ce que je fais mal? Dans le même temps, cela fonctionne:

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

Voici la partie de la source:

<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>
44
casper

La fonction ends-with Fait partie de xpath 2.0 mais les navigateurs (vous indiquez que vous testez avec chrome) ne prennent généralement en charge que 1.0. Donc, vous devrez l'implémenter vous-même avec une combinaison de string-length, substring et égale

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