Angularjs 量角器:如何正确使用量角器中的过滤?
我试着用量角器开始测试,但现在我遇到了一个无法解决的问题 我有这个测试:Angularjs 量角器:如何正确使用量角器中的过滤?,angularjs,testing,filtering,protractor,cycle,Angularjs,Testing,Filtering,Protractor,Cycle,我试着用量角器开始测试,但现在我遇到了一个无法解决的问题 我有这个测试: describe('Test_3', function() { var my_url = 'http://wks-15103:8010/ps/ng-components/examples/ps-checkbox.html' var main_checkbox = element(by.xpath("//div[@ng-model='My_Group']/div[1]/span/span[1]"));
describe('Test_3', function() {
var my_url = 'http://wks-15103:8010/ps/ng-components/examples/ps-checkbox.html'
var main_checkbox = element(by.xpath("//div[@ng-model='My_Group']/div[1]/span/span[1]"));
var checkbox_list = element.all(by.xpath("//div[@ng-model='My_Group']/div[2]/div/span/span[1]"));
var title_checkbox_list = element.all(by.xpath("//div[@ng-model='My_Group']/div[2]/div/span"));
var disabled_pri = 'n-check-checkbox';
var enabled_pri = 'n-check-checkbox n-check-checkbox_checked';
beforeEach(function() {
browser.get(my_url);
});
it('schould be chosen',function(){
main_checkbox.click();
checkbox_list.filter(function(elem, index) {
return elem.getAttribute('class').then(function(text) {
return text != 'n-check-checkbox n-check-checkbox_disabled' & text!='n-check-checkbox n-check-checkbox_disabled n-check-checkbox_checked';
});
}).then(function(filteredElements) {
filteredElements.each(function(element, index) {
expect(element.getAttribute('class')).toEqual(disabled_pri);
});
});
});
});
它不起作用了。
但是我尝试使用无循环过滤。每个都可以正常工作
describe('Test_3', function() {
var my_url = 'http://wks-15103:8010/ps/ng-components/examples/ps-checkbox.html'
var main_checkbox = element(by.xpath("//div[@ng-model='My_Group']/div[1]/span/span[1]"));
var checkbox_list = element.all(by.xpath("//div[@ng-model='My_Group']/div[2]/div/span/span[1]")); //это список самих чекбоксов
var title_checkbox_list = element.all(by.xpath("//div[@ng-model='My_Group']/div[2]/div/span")); //это список чекбоксов с названиями
var disabled_pri = 'n-check-checkbox';
var enabled_pri = 'n-check-checkbox n-check-checkbox_checked';
beforeEach(function() {
browser.get(my_url);
});
it('schould be chosen',function(){
main_checkbox.click(); //Убрали флажок с группового чекбокса
checkbox_list.filter(function(elem, index) {
return elem.getAttribute('class').then(function(text) {
return text != 'n-check-checkbox n-check-checkbox_disabled' & text!='n-check-checkbox n-check-checkbox_disabled n-check-checkbox_checked';
});
}).then(function(filteredElements) {
filteredElements[0].click();
filteredElements[0].click();
expect(filteredElements[0].getAttribute('class')).toEqual(disabled_pri);
});
});
});
我的错误是什么?如中所述,它返回的实例。当您在ElementArrayFinder
实例上调用then
方法时,它会解析为一个s数组,因此在then
的回调中,您会收到一个纯JavaScript数组ElementFinder
s。要迭代它,可以使用本机JavaScrut:
否则,ElementArrayFinder
有它自己的方法每个
,您应该在过滤器
的结果上调用它,而不是在的回调中调用它,然后
:
checkbox_list.filter(function(elem, index) {
// ...
})
.each(function(element, index) {
// ....
});
也许你也能帮上忙。非常感谢!你帮了我大忙!它正在工作=)嗨,我有类似的任务要做,但问题是我想检查类是否包含禁用的作为子字符串。我希望所有未禁用的元素都作为子字符串
,然后单击集合中的2个元素。有人能帮我解决一下过滤部分吗?@rahoolm,我想你应该提出一个新问题,在这里描述你的具体问题,并提供你实际代码的例子。
checkbox_list.filter(function(elem, index) {
// ...
})
.each(function(element, index) {
// ....
});