子字符串中带单引号的Selenium XPath文本搜索
我的html代码如下子字符串中带单引号的Selenium XPath文本搜索,selenium,xpath,Selenium,Xpath,我的html代码如下 <td class="summaryValRt2 summaryValDetails">Appledore Engineering v Shaw's - Dan Day_220217103442</td> 结果: 由于图元不可见,无法单击图元 我检查了它的问题,因为“文字中的字符” [text()='Appledore Engineering v**Shaw's**-Dan Day.[u 220217103442'] 有人能分享你的想法吗?试试我
<td class="summaryValRt2 summaryValDetails">Appledore Engineering v Shaw's - Dan Day_220217103442</td>
结果:
由于图元不可见,无法单击图元
我检查了它的问题,因为“文字中的字符”
[text()='Appledore Engineering v**Shaw's**-Dan Day.[u 220217103442']
有人能分享你的想法吗?试试我在本例中使用的[text()=“Appledore Engineering v Shaw's-Dan Day”]
或者您可以尝试使用unicode代码作为单引号,类似于
[text()=“Appledore Engineering v Shaw\u0027s-Dan Day”]
在XPath 2.0中,您可以使用反斜杠转义引号:
text()='Appledore Engineering v Shaw\'s - Dan Day_220217103442'
但是,目前大多数主流浏览器都不支持XPath2.0。在此之前,您只能使用XPath 1.0规范,该规范不支持转义字符
由于字符串仅包含单引号,因此可以改为将字符串用双引号括起来:
text()="Appledore Engineering v Shaw's - Dan Day_220217103442"
这将涵盖大多数情况,但如果搜索同时包含单引号和双引号的字符串,则会变得更加棘手
例如,假设您正在搜索以下字符串:
single'quote double"quote
您可以使用交替引号技巧使用concat
实现这一点:
text()=concat("single'quote", ' double"quote')
请使用下面的xpath,它对我来说工作正常
//*[@class='summaryValRt2 summaryValDetails'][text()="Appledore Engineering v Shaw's - Dan Day_220217103442"]
不,它不起作用,因此与在XPath 2.0中起作用的/*[@class='summaryValRt2 summaryValDetails'][text()='Appledore Engineering v Shaw's-Dan Day22021703442']相同,但现在很多浏览器仍在使用XPath 1.0。我只使用最新版本的浏览器。你能帮我一下吗?@Ramesh你的
XPath
是在浏览器中添加元素。但是当我尝试用java语言执行这个xpath
时,它不允许我编写它,因为您在xpath中使用了(双引号)。有关这方面的更多详细信息,请尝试使用java
lang编写上述xpath
脚本。您将在何时更新它?因为你的回答对我没有帮助。
//*[@class='summaryValRt2 summaryValDetails'][text()="Appledore Engineering v Shaw's - Dan Day_220217103442"]