web-dev-qa-db-ja.com

Xpath「ends-with」が機能しません

常に「register」で終わる動的ID名を持つ入力要素を見つけようとしています。これまで私はこれを試しました

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

ends-with関数はxpath 2.0の一部ですが、ブラウザ(クロムでテストしていることを示す)は通常1.0のみをサポートします。そのため、string-lengthsubstringおよび等しい

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