Selenium中含撇号文本的XPath编写问题求助
解决XPath匹配含单引号文本的问题
嗨,这个问题我之前也踩过坑!确实是owner's里的单引号搞的鬼——当你用单引号包裹XPath的文本字符串时,解析器会把文本里的单引号当成字符串的结束标记,导致匹配失败。给你几个实用的解决方案:
转义单引号(XPath原生方式)
在XPath的单引号字符串中,用两个连续的单引号表示一个实际的单引号,这样就能避免解析错误。示例://strong[text()='Please upload this owner''s ID:']如果用
contains()的话,同样适用://strong[contains(text(), 'Please upload this owner''s ID:')]用双引号包裹文本字符串
如果你的代码环境允许(比如大部分编程语言和自动化测试框架都支持),可以用双引号把要匹配的文本括起来,这样里面的单引号就不会造成冲突了。示例://strong[text()="Please upload this owner's ID:"]对应的
contains()写法://strong[contains(text(), "Please upload this owner's ID:")]优化定位精度(可选)
因为目标文本在<strong>标签内,且父元素是<p>,你可以更精准地定位元素,减少匹配到无关元素的概率://p/strong[text()='Please upload this owner''s ID:']
内容的提问来源于stack exchange,提问作者Arun Chettur
相关产品推荐
相关产品推荐

