量角器 - 如何获得第一个或最后一个 CHILD 值
Protractor - How to get first or last CHILD value
我有一些 HTML 看起来像这样:
<div class="label label-primary ng-scope" ng-if="vehicle.manufacturerCode">
<strong class="ng-binding">AUDI</strong>
<small class="ng-binding">[00]</small>
<span class="btn btn-flat" ng-click="axCarSearch.removeIdentification(1, $event)">
<span class="glyphicon glyphicon-remove-sign"></span>
</span>
</div>
从这个 HTML 我需要获取第一个或最后一个 ng-binding 的值。
我可以想象我可以通过以下方式到达 vehicle.manufacturerCode:
element(by.css('[ng-if="vehicle.manufacturerCode"]'));
但不确定如何更深入地获取字符串 "AUDI" 或字符串“[00]”来比较它们是否相等。
它可能看起来像:
it('Compare results ', function() {
var manufacturer = element(by.css('[ng-if="vehicle.manufacturerCode"]')).child[0];
expect(manufacture.toEqual('AUDI');
});
$('.label-primary').children().each(function () {
//Use value here using $this
});
使用每个循环迭代 div 的所有子项。
您提供的 HTML 建议可以使用 by.binding
定位器,但您没有提供实际的绑定 - 您可以在未呈现的 HTML 中看到它们源代码,例如应该是这样的:
<strong class="ng-binding">{{ vehicle.manufacturer }}</strong>
在这种情况下,您可以通过这种方式找到所需的元素:
var div = element(by.css('[ng-if="vehicle.manufacturerCode"]'));
var name = div.element(by.binding("vehicle.manufacturer"));
var code = div.element(by.binding("vehicle.manufacturerCode"));
expect(name.getText()).toEqual("AUDI");
expect(code.getText()).toEqual("[00]");
根据您提供的内容,您可以链接 element
调用并依赖标签名称:
var div = element(by.css('[ng-if="vehicle.manufacturerCode"]'));
var strong = div.element(by.tagName("strong"));
var small = div.element(by.tagName("small"));
expect(strong.getText()).toEqual("AUDI");
expect(small.getText()).toEqual("[00]");
请注意,一般来说,依赖 ng-if
和标签名称不太可靠。
我有一些 HTML 看起来像这样:
<div class="label label-primary ng-scope" ng-if="vehicle.manufacturerCode">
<strong class="ng-binding">AUDI</strong>
<small class="ng-binding">[00]</small>
<span class="btn btn-flat" ng-click="axCarSearch.removeIdentification(1, $event)">
<span class="glyphicon glyphicon-remove-sign"></span>
</span>
</div>
从这个 HTML 我需要获取第一个或最后一个 ng-binding 的值。 我可以想象我可以通过以下方式到达 vehicle.manufacturerCode:
element(by.css('[ng-if="vehicle.manufacturerCode"]'));
但不确定如何更深入地获取字符串 "AUDI" 或字符串“[00]”来比较它们是否相等。
它可能看起来像:
it('Compare results ', function() {
var manufacturer = element(by.css('[ng-if="vehicle.manufacturerCode"]')).child[0];
expect(manufacture.toEqual('AUDI');
});
$('.label-primary').children().each(function () {
//Use value here using $this
});
使用每个循环迭代 div 的所有子项。
您提供的 HTML 建议可以使用 by.binding
定位器,但您没有提供实际的绑定 - 您可以在未呈现的 HTML 中看到它们源代码,例如应该是这样的:
<strong class="ng-binding">{{ vehicle.manufacturer }}</strong>
在这种情况下,您可以通过这种方式找到所需的元素:
var div = element(by.css('[ng-if="vehicle.manufacturerCode"]'));
var name = div.element(by.binding("vehicle.manufacturer"));
var code = div.element(by.binding("vehicle.manufacturerCode"));
expect(name.getText()).toEqual("AUDI");
expect(code.getText()).toEqual("[00]");
根据您提供的内容,您可以链接 element
调用并依赖标签名称:
var div = element(by.css('[ng-if="vehicle.manufacturerCode"]'));
var strong = div.element(by.tagName("strong"));
var small = div.element(by.tagName("small"));
expect(strong.getText()).toEqual("AUDI");
expect(small.getText()).toEqual("[00]");
请注意,一般来说,依赖 ng-if
和标签名称不太可靠。