我有一些看起来像这样的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');
});
答案 0 :(得分:1)
您提供的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
和标记名称并不十分可靠。
答案 1 :(得分:0)
$('.label-primary').children().each(function () {
//Use value here using $this
});
使用每个循环迭代div的所有子项。