2015-11-10 2 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

Смежные вопросы