Я пытаюсь getText, но навсегда причина, что он становится пустым. Текст - это поле только для чтения, называемое театром, а затем список из 28 номеров под ним. Я пробовал много разных способов получить текст, включая getAttribute, который возвращает null. У меня есть функция прокрутки вниз, которая прокручивает страницу вниз, поэтому я вижу, что она распознается селектором, поскольку она прокручивается и подсчитывается. Я действительно потерял это. У меня есть массив под названием bodyArray, который соответствует тексту строки за строкой, но не может этого сделать.
html выглядит так:
<td class="capacity" title="Theater" data-style="theater">
<input class="readonly" type="text" data-bind="value: capacityObservables.theater, readonly: $root.editItem() !== $data || enhanced, valueUpdate: 'afterkeydown'" readonly="readonly">
</td>
что у меня для моего кода:
//I have tried using the data-bind but i get an invalid selector error
var theaterStyle = element.all(by.css('[data-style="theater"]'));
theaterStyle.count().then(function(count) {
console.log(count);
j = 0;
for (var i = 0; i < count; i++) {
//scrolls down the list element by element
browser.executeScript("arguments[0].scrollIntoView();", theaterStyle.get(i).getWebElement());
theaterStyle.get(i).getText().then(function(text) {
console.log(text, theaterArray[j], j);
expect(text).toEqual(theaterArray[j++]);
});
}
});
Возможно, текст добавлен в атрибут value. Вы попробовали это,
element.all(by.css('td[title="Theater"]>input')).each(function(element, index) {
element.getAttribute('value').then(function (text) {
console.log(index, text);
expect(theaterArray.includes(text)).toEqual(true);
});
});