Protractor 元素。所有元素始终返回计数为0

Protractor 元素。所有元素始终返回计数为0,protractor,Protractor,我试图使用量角器测试一个动态web表,并试图找到头、行和列的计数,但总是得到0作为计数 var x=element.all(by.xpath('//table//thead//tr//th')) x、 count()。然后(函数(c){ 控制台日志(c) })) 我也尝试过使用element.all(by.css)并且它返回相同的结果,有人能帮忙吗? 我使用selenium并能够检索值,因此xpath没有错,但我必须使用量角器来获取相同的值。 正在运行的Selenium脚本 List col=d

我试图使用量角器测试一个动态web表,并试图找到头、行和列的计数,但总是得到0作为计数 var x=element.all(by.xpath('//table//thead//tr//th'))

x、 count()。然后(函数(c){

控制台日志(c)

}))

我也尝试过使用element.all(by.css)并且它返回相同的结果,有人能帮忙吗? 我使用selenium并能够检索值,因此xpath没有错,但我必须使用量角器来获取相同的值。 正在运行的Selenium脚本 List col=driver.findElements(By.xpath(//div[@class='table-wrapper']//table//thead//tr/th”); System.out.println(col.size())

尝试下面的代码

var x = await element.all(by.css('table[title="status"]'))
//Add wait if the table take more time to load
x.count().then(function(c){
console.log(c);
});

通常,您应该避免使用
xpath
,因为它效率很低

这应该适合您:

var table = element(by.css('table.table'));

table
 .element(by.css('thead'))
 .all(by.css('tr th'))
 .count()
 .then(function(count) {
   console.log('count:',count);
 });

如果您知道至少会有一个,则需要browser.wait等待x.first()的出现。否则,它的作用就太快了。或者你可以加上睡眠,但那太恶心了。或者使用async和x=await元素。所有。。。console.log(await x.count)感谢第一个工作的wait没有,作为下一步,我的场景是自动化一个动态表…该表始终有3列,但行数不同。(年龄范围取决于选择)必须将每个年龄范围对应的入院和出院状态值与后端进行比较(我必须将web元素与查询的o/p进行比较,以查看是否所有查询都在ui上正常工作)。挑战是如何确定调用哪个查询,因为这是动态的。例如,如果只存在18-40岁的查询,则该查询将是我的单元格(0),因此单元格(1)和单元格(2)应匹配来自db的查询。。。