Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在量角器中嵌套每个函数_Javascript_Angularjs_Nested_Jasmine_Protractor - Fatal编程技术网

Javascript 在量角器中嵌套每个函数

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

我使用量角器在网页上运行基本的健全性测试

在一个页面中有五个选项卡,第三个页面(index=2)中还有三个选项卡

我已经编写了下面的代码,以便按顺序遍历它们中的每一个

如果(index!=1)出现的原因是页面加载到第二个选项卡

代码正在安慰第二个if块中的元素

但是没有执行第二个“each”命令

我做错了什么

我需要浏览器坚持到第三个主选项卡,然后通过嵌套的选项卡,然后移动到第四个主选项卡

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();
      }
    });