我正在尝试使用文本,但永远的理由是它会变空。该文本是一个名为剧院的只读字段,然后是一个包含28个数字的列表。我尝试了许多不同的获取文本的方法,包括返回null的getAttribute。我有一个向下滚动页面的向下滚动功能,所以我可以看到它被滚动和计数时被选择器识别。我真的迷失了这个。我有一个名为theaterArray的数组,它逐行匹配文本,但不能这样做。
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++]);
});
}
});
答案 0 :(得分:1)
也许文本填充在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);
});
});