XPath定位元素的时候,我们有时会用到文本定位,既根据元素包含的文本来找元素:
//<tagName>[contains(text(),'XXX')]
但是有时候发现失灵了,在元素前后有空格或者换行元素的情况下,例如:
可以看到以下写法并未定位出来元素<div class="container">, 是因为前后有很多的<br>换行元素:
这里我们用 normalize-space 来解决此问题,此方法用来去掉前后空格
normalize-space()="XXX"
会发现此中方式还是未定位到元素,应该是后边的a标签影响的,a标签也是包含文本,并且也是属于div标签的
那么我们用一种更加灵活的方式,既判断去掉空改后的文本包含特定字符串,即:
contains(normalize-space(),'XXX')