<ul class="menu">
<li ui-sref-active="active">
<a class="ng-scope" translate="menu.home" href="#/home">Home</a>
</li>
<li ui-sref-active="active">
<a class="ng-scope" ui-sref="customer.list" translate="menu.customers" href="#/customers">Customers</a>
</li>
</ul>
我想使用文本&#34; Home&#34;来搜索元素。如下面的代码:
element(by.linkText("Home")).click();
但我需要使用任何其他可用属性,在本例中为translate
,以使其更准确。
这样做有可能吗?我看过这样的事情
by.css(".ng-scope input[translate='menu.customers']");
但它似乎不起作用。
答案 0 :(得分:4)
by.css(".ng-scope input[translate='menu.customers']");
这基本上转换为:给我input
元素menu.customers
translate
属性值,在父元素内部ng-scope
类。这不起作用,因为您提供的HTML中没有ng-scope
类的父元素,而是a
而不是您正在寻找的input
。
相反,你可能意味着:
a.ng-scope[translate='menu.customers']
尽管如此,我不建议依赖相当广泛的ng-scope
课程。
根据您提供的HTML,以下是几个相当精确的CSS选择器:
ul.menu > li > a[href*=home] // href contains "home"
ul.menu > li > a[href$=home] // href ends with "home"
ul.menu > li > a[translate="menu.home"] // translate equals to "menu.home"
ul.menu > li > a[translate$=home] // translate contains "home"