编写xpath时将(空格)作为锚标记的文本处理

时间:2018-06-20 11:53:25

标签: selenium xpath

我想为以下HTML编写xpath或任何其他定位符:

<a href="some url">QAQA:QAQA</a>  

我将xpath编写为//a[text()='QAQA:QAQA'],并尝试使用linkText。工作正常。

当有这样的html时,我的实际问题就出现了:

<a href="some url">QA:AAL93937$P%$!ALC#AR&nbsp;TEST</a> 

当我将xpath写为//a[contains(text(),'QA:AAL93937$P%$!ALC#AR TEST')]时,检查页面时没有任何条目。

我已经尝试过这些技巧来编写xpath:

//a[contains(text(),"QA:AAL93937$P%$!ALC#AR${&nbsp}TEST")] 

//a[normalize-space(text()) = 'QA:AAL93937$P%$!ALC#AR$ TEST'] 


//a[normalize-space(.) = 'QA:AAL93937$P%$!ALC#AR$ TEST']

编写定位符时,有什么方法可以摆脱非突破性空间吗?

更新:

<div class="Tips">&nbsp;
<p>
asd
</p>
</div>  

对于此HTML,如果我想绕过xpath中的&nbsp,我该怎么做? [我知道我们也可以编写cssSelector和xpath,但是我想绕过&nbsp以便将来使用这个概念。

尝试过的xpath是:

//div[@class='Tips' and text()='${nbsp}']/p  

 //div[@class='Tips' and text()='\u00a0']/p

我们将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此XPath忽略空格字符并匹配所需的链接:

//a[starts-with(text(), "QA:AAL93937$P%$!ALC#AR") and substring(text(), 24)="TEST"]