Javascript 在量角器中嵌套每个函数
我使用量角器在网页上运行基本的健全性测试 在一个页面中有五个选项卡,第三个页面(index=2)中还有三个选项卡 我已经编写了下面的代码,以便按顺序遍历它们中的每一个 如果(index!=1)出现的原因是页面加载到第二个选项卡 代码正在安慰第二个if块中的元素 但是没有执行第二个“each”命令 我做错了什么 我需要浏览器坚持到第三个主选项卡,然后通过嵌套的选项卡,然后移动到第四个主选项卡Javascript 在量角器中嵌套每个函数,javascript,angularjs,nested,jasmine,protractor,Javascript,Angularjs,Nested,Jasmine,Protractor,我使用量角器在网页上运行基本的健全性测试 在一个页面中有五个选项卡,第三个页面(index=2)中还有三个选项卡 我已经编写了下面的代码,以便按顺序遍历它们中的每一个 如果(index!=1)出现的原因是页面加载到第二个选项卡 代码正在安慰第二个if块中的元素 但是没有执行第二个“each”命令 我做错了什么 我需要浏览器坚持到第三个主选项卡,然后通过嵌套的选项卡,然后移动到第四个主选项卡 it('going through the sub tabs in manage page', funct
it('going through the sub tabs in manage page', function(){
expect(element.all(by.css('.settingsTabs li a')).count()).toBe(5);
element.all(by.css('.settingsTabs li a')).each(function(element, index) {
if(index!= 1){
element.click();
browser.driver.sleep(3000);
browser.sleep(3000);
}
if(index == 2){
console.log(element.all(by.css('.ng-isolate-scope ul li a')));
element.all(by.css('.ng-isolate-scope ul li a')).each(function(element1) {
element1.getText().then(function(text) {
console.log(text);
});
});
}
});
});
我终于明白了 我犯了两个错误 一个是定位器,另一个是变量的命名 因为我嵌套每个函数,所以必须声明不同的变量名作为参数 在我的例子中,我把它们都命名为“元素”,这是所有这些麻烦的根源 固定代码如下所示:
element.all(by.css('.settingsTabs li a')).each(function(elem, index) {
if(index!= 1){ // here i named the passed argument "elem"
elem.click();
browser.driver.sleep(2000);
}
if(index == 2){
expect(element.all(by.css('.tab-pane li a')).count()).toBe(3);
browser.driver.sleep(2000);
element.all(by.css('.tab-pane li a')).each(function(elemen) { // here it is "elemen"
elemen.click();
browser.driver.sleep(2000);
elemen.getText().then(function(text) {
console.log(text);
});
});
}
if(index == 3){
expect(element.all(by.css('.diagnostic-options li')).isPresent()).toBeTruthy();
}
});