我有一个带有Id的textarea控件,如下所示:
<textarea id="NewTextArea~~51887~~1" rows="2"/>
以前工作的xpath已经
//textarea[@id, "NewTextArea~~51887~~1"]
但是现在id的'51887'部分变得多样化(每次都在变化)所以我需要选择NewtextArea ~~ * ~~ 1元素而不实际指定数字。有没有办法我可以将字符串的一部分通配符,以便它匹配特定的模式?我尝试使用starts-with和ends-with但无法使其工作:
//textarea[starts-with(@id, 'NewTextArea~~') and ends-with(@name, '~~1')]
请记住,还有其他字段与最后的数字不同。
非常感谢任何建议或指导:)
答案 0 :(得分:1)
我尝试使用start-with和ends-with但无法使其工作:
//textarea[starts-with(@id, 'NewTextArea~~') and ends-with(@name, '~~1')]
ends-with()
仅在XPath 2.0中作为标准函数提供,您似乎使用XPath 1.0 。
使用强>:
//textarea
[starts-with(@id, 'NewTextArea~~')
and
substring(@id, string-length(@id) - 2) = '~~1'
]
<强>解释强>:
有关如何在XPath 1.0中实现ends-with()
的信息,请参阅此问题的答案: