2015-11-10 23 views
1

我有這樣的代碼:如何使用量角器比較不同窗口(選項卡)中的兩個值?

element.all(by.repeater('publication in newsPublications')).count().then(function (numNoticias) { 

       for (var i = 6; i < numNoticias; i++) { 

        array[i] = element.all(by.repeater('publication in newsPublications')).get(i) 
       .element(by.tagName('a')).getText(); 

        browser.ignoreSynchronization = true; 
        element.all(by.repeater('publication in newsPublications')).get(i) 
        .element(by.tagName('a')).click().then(function() { 

         browser.driver.getAllWindowHandles().then(function (handles) { 

          browser.wait(function() { 
           return handles.length > 1 
          }, espera); 

          browser.driver.switchTo().window(handles[1]).then(function() { 

           expect(element(by.css('#contenido .limpiar')).getText()).toEqual(array[i]); // IT FAILS!!!!! 

           browser.driver.close(); 
           browser.driver.switchTo().window(handles[0]); 
          }); 
         }); 

        }); 

但我不知道我怎麼可以斷言在打開新標籤陣列的價值。期望失敗...錯誤說:

預期'文本標籤1'等於未定義。

回答

1

我想你可以通過避免索引循環並切換到.each()來簡化它。另外,我也明確地解決getText()獲得鏈接文本:

element.all(by.repeater('publication in newsPublications')).each(function (publication) { 
    var link = publication.element(by.tagName('a')); 

    browser.ignoreSynchronization = true; 
    link.getText().then(function (linkText) { 
     link.click().then(function() { 
      browser.driver.getAllWindowHandles().then(function (handles) { 
       browser.wait(function() { 
        return handles.length > 1 
       }, espera); 

       browser.driver.switchTo().window(handles[1]).then(function() { 

        expect(element(by.css('#contenido .limpiar')).getText()).toEqual(linkText); 

        browser.driver.close(); 
        browser.driver.switchTo().window(handles[0]); 
       }); 
      }); 
     }); 
    }); 
}); 
+0

它完美!非常感謝!很有用。 – winlinuz

相關問題