2014-12-22 2 views
0

Это кажется тривиальным, но я пытаюсь настроить функциональный тест Intern для проверки внутреннего текста набора элементов span на моей странице с тем же классом CSS, но я, похоже, не могу изолировать текст внутри диапазона. Вот мой код:Внутренний функциональный тест - итерация по множеству элементов

 'Span check': function() { 
      return this.remote 
       .findAllByClassName('mySpanClass') 
       .then(function (elems) {      
        assert.strictEqual(elems[0].innerHTML(),'Span Text'); 
       }) 
     } 

Я запускать отдельные тесты, чтобы убедиться, что пролеты были обнаружены ... функция findAllByClassName возвращает массив из двух объектов.

Кто-нибудь сделал что-нибудь подобное?

ответ

0

Вы должны использовать getVisibleText() вместо:

Получает видимый текст внутри элемента. элементы преобразуются в разрывы строк в возвращаемом тексте, а пробелы нормализуются на обычными правилами нормализации пробелов XML/HTML.

return this.remote 
    .findByCssSelector('.mySpanClass') 
    .getVisibleText() 
    .then(function (text) {      
     assert.strictEqual(text, 'Span Text'); 
    }); 

Это будет работать для одного элемента.

Если вы хотите, чтобы проверить текст каждого диапазона, используйте:

return this.remote 
    .findAllByCssSelector('.mySpanClass') 
    .getVisibleText() 
    .then(function (texts) {      
     assert.strictEqual(texts, ['Span1 Text', 'Span2 Text']); 
    }); 
+0

Пробовал это так же, до сих пор совсем не похоже на работу: ожидаемый {Object (отменить, то)} равным «Span Text ' – emroc

+0

@emroc вы уверены, что у вас есть 'then()' после 'getVisibleText()', как я есть в ответе? Благодарю. – alecxe

+0

Должен ли getVisibleText использоваться для результата 'getAll'? Я предположил, что, поскольку мы возвращаем массив, это не будет правильным подходом. – emroc

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