在某些情况下,开发可能有如下的写法
<span>"中国"<i class="country">(chinese)</i></span>
<span>"日本"<i class="country">(chinese)</i></span>
<span>"印度"<i class="country">(chinese)</i></span>
页面上显示
中国
日本
印度
这个情况下想单独定位某一个span只能根据国家来定位,按照通常写法一般这样写:
//span[contains(text(),'中国')]
但是这样写却一直不生效,除非打开F12双击元素的文本内容后再来定位就能定位得到。懵了很久,然后发现页面代码里面 中国 的两边都是有双引号的,而正常的是不需要双引号的,就如后面 i 标签里面的文本一样,后面的i标签可以通过//span/i[contains(text(),'chinese')]
定位到
于是判断这种写法下,中国不被认定为文本内容,所以用text()定位不到,改成
//span[contains(.,'中国')]
成功解决问题。不过为什么在源码里面双击中国后就能定位到还是不明白,可能是双击后可以编辑,被认为是文本了吧。