Angular 如何在不使用XPath的情况下在量角器中读取表中的特定行?
我正在尝试编写一个量角器测试,检查下面Angular 如何在不使用XPath的情况下在量角器中读取表中的特定行?,angular,jasmine,protractor,Angular,Jasmine,Protractor,我正在尝试编写一个量角器测试,检查下面标记内的数字: 我设法使用下面的第n个子项使它为1工作: element(by.css('td:nth-child(4)')).getText().then((text) => { console.log('Text', text); }); 但是如果表中有多行,它只打印第一行 有人能告诉我需要做哪些更改,以便我查看表中的每一行并打印第四个子行吗?使用element.all() 从你粘贴的内容来看,从本质上看并没有任何问题;在等待myVal
标记内的数字:
我设法使用下面的第n个子项使它为1工作:
element(by.css('td:nth-child(4)')).getText().then((text) => {
console.log('Text', text);
});
但是如果表中有多行,它只打印第一行
有人能告诉我需要做哪些更改,以便我查看表中的每一行并打印第四个子行吗?使用element.all()
从你粘贴的内容来看,从本质上看并没有任何问题;在等待myValue
点击Hi@JoaquinCasco之后,测试将在5000毫秒后超时。谢谢您的评论。我已经更新了我的代码,以检查的可见性,而不是元素是否可选择
&测试现在通过了。但是我现在得到了一个不同的错误,我用这个问题更新了我的代码。这是因为visibilityOf
假设元素存在于html中,这就是它找不到它的原因。在等待其可见性/可点击性之前,您可能希望添加presenceOf
,因此我已将visibilityOf
更新为presenceOf
&仍然会收到相同的错误消息使用css:nth-child()
,但有时您无法避免xpath
element.all(by.css('tr > td:nth-child(4)')).getText().then((texts) => {
// texts is a string array, includes the 4th column values
console.log('Text', texts);
});
// or use element.all().each()
element.all(by.css('tr > td:nth-child(4)')).each((it)=>{
it.getText().then((text)=>{
console.log('Text', texts);
})
});