2013-11-14 3 views
0

У меня есть следующий тест e2e, который работает отлично:Печать текста из транспортира повторителя

  var results = ptor.findElements(protractor.By. 
        repeater('phone in phones').column('phone.name')); 
      results.then(function(arr) { 
      expect(arr.length).toEqual(2); 
     }); 

Вместо подсчета/длины, я хочу, чтобы пройти тест, который проверяет текст результатов, что-то вроде:

expect(repeater('.phones li', 'Phone List').column('phone.name')). 
     toEqual(["Motorola XOOM\u2122 with Wi-Fi", 
       "MOTOROLA XOOM\u2122"]); 

но с использованием синтаксиса транспортир, я попытался следующие, но не идти:

var results = ptor.findElements(protractor.By. 
       repeater('phone in phones').column('phone.name')); 
     results.then(function(arr) { 
     expect(arr.getText()).toEqual(....); 
    }); 

номе t Я получаю ошибку метода getText(). Каков способ получить текст в массиве «arr»?

Это работает:

  ptor.findElements(protractor.By.repeater('phone in phones').column('phone.name')) 
      .then(function(arr) { 
       arr[0].getText().then(function(text) { 
        console.log("*** first: "+text); 

       }); 
       arr[1].getText().then(function(text) { 
        console.log("*** second: "+text); 

        done(); 
       }) 
      }); 

ответ

1

Проблема заключается в том, как Ваш, выстроив цепочку методов. Поиск элемента просто возвращает WebElement. То, что вам действительно нужно, - это объект обещания, который возвращается getText(). Если вы хотите что-то сделать с текстом после того, как обещание было разрешено, вам нужно связать вызов «then» в конце вызова getText(). Таким образом, вместо:

results.then(function(arr) { 
    expect(arr.getText()).toEqual(....); 
}); 

вы действительно хотите что-то вроде этого:

results.getText().then(function(resultText) { 
    expect(resultText).toEqual(....); 
}) 
+0

последнего редактирования я сделал работу в пути, но он получает целый ряд, а не только «phone.name». Итак, теперь я пытаюсь выяснить, как получить только phone.name, чтобы отображаться в arr [0] .getText(), а не целая строка – bmw0128

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