【发布时间】:2018-10-18 09:56:35
【问题描述】:
我正在尝试为我的 AngularJS 应用程序单击量角器中的重复列表项。该列表与ng-repeat 重复,我想更改选项卡项目的显示。 html 看起来像这样:
<ul class="navigation">
<li ng-repeat="item in vm.navLinks" class="item"
ng-class="{'active': item.view == vm.selectedState.view}"
ng-click="vm.selectApiView(item.view)">
<div class="tabText">{{item.title}}</div>
</li>
</ul>
<div class="containerClass">
<div id="firstDiv" class="tab-view">
Tab Item 1
</div>
</div>
在我的控制器中,我有代码可以更改单击的 div 的样式,因此它在我的选项卡菜单中可见:
vm.selectApiView = function(view) {
vm.selectedState.view = view;
var elementView = document.getElementsByClassName("tab-view");
for (var i = 0; i < elementView.length; i++) {
elementView[i].style.display = "none";
}
document.getElementById(view).style.display = "block";
};
在我的量角器测试中,我有以下代码应该由中继器循环遍历列表并单击第二个列表项。我的猜测是它没有点击,因为样式未设置为block,但我不知道如何证明这一点。我也可能会误解它。
describe("the tab selection", function() {
it("should expect vm.selectedState.view to be 'fieldname' when clicked",function(){
element.all(by.repeater('item in vm.navLinks')).get(1).click();
let view = element(by.model('vm.selectedState.view'));
console.log('view', view)
expect(view).toEqual('fieldname')
});
});
量角器测试应该这样设置以单击div吗?还是我错过了一步?
【问题讨论】:
标签: javascript angularjs testing protractor