如何只从父元素而不是从其子元素获取文本-Protractor



我使用Protractor(在Angular应用程序中(为菜单编写了e2e测试,并尝试选择标识符为by.cssContainingText的链接元素。

HTML代码如下所示:

<a class="parent" href="#">
<svg>
...
<title>Home</title>
...
</svg>
Home
</a>

但是,如果在这种情况下使用by.cssContainingTextProtractor选择器,我的测试会不时失败。

对此,什么是好的方法?

在selenium中,如果默认情况下对父元素执行get text,它也会获取所有子元素的文本,因此当执行by.cssContainingText时,如果有子元素,它会失败。

为了避免这种情况
#1-使用函数text()='Your text'的xpath而不是by.cssContainingText
#2-:-将所有嵌套文本传递给选择器(这不好,因为定位器独立于其他元素(

所以对于上面的html代码,如果您想选择Home,那么标识符将是.//a[//title[text()='Home']].//title[text()='Home']/parent::a

最新更新