我使用Protractor(在Angular应用程序中)为菜单编写了e2e测试,并尝试选择标识符为by.cssContainingText
的链接元素。
HTML代码类似于以下内容:
<a class="parent" href="#">
<svg>
...
<title>Home</title>
...
</svg>
Home
</a>
但是如果在这种情况下使用by.cssContainingText
量角器选择器,我的测试有时会失败。
对此有什么好的方法?
答案 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