如何仅从父元素而不是从其子元素获取文本-量角器

时间:2018-12-13 19:35:20

标签: angular protractor

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

HTML代码类似于以下内容:

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

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

对此有什么好的方法?

1 个答案:

答案 0 :(得分:1)

在硒中,如果默认情况下在父元素上执行get text,那么它将也带走所有子元素文本,因此,在执行by.cssContainingText时,如果有子元素则失败。

为避免这种情况
#1 -代替by.cssContainingText使用功能为text()='Your text'的xpath
#2-:-将所有嵌套的文本传递给选择器(由于定位器与其他元素无关,因此效果不佳)

因此对于上述html代码,如果要选择Home,则标识符为 .//a[//title[text()='Home']].//title[text()='Home']/parent::a