XPath - 无法找到带有子文本的元素

时间:2016-09-23 05:09:58

标签: selenium xpath selenium-webdriver xpath-2.0

<a>
    This is <var>Me</var> and That is <var> You</var>
</a>

我可以通过以下代码找到包含“This is”的元素“a”:

//a[contains(text(),'This is')]

但是我无法找到包含“这就是我,那就是你”的元素“a”。

//a[contains(text(),'This is Me and That is You')]

有没有办法找到包含子文本的元素?

2 个答案:

答案 0 :(得分:3)

我不确定你是否需要这个,但你可以使用string()来获得所需的结果,

//a[string()='This is Me and That is You']

但需要注意的是,您需要获得有关正在使用的字符串的精确信息。

参见工作示例here

答案 1 :(得分:1)

这也可以使用xpath //a[normalize-space()='This is Me and That is You'] 函数来查找,该函数从字符串中去除前导和尾随空格,用单个空格替换空白字符序列,并返回结果字符串,如下所示: -

class User extends Model
{
    public function books()
    {
        return $this->belongsToMany('App\Book')->withPivot('state');
    }
}