protractor - 如何断言表格中是否存在文本
问题描述
我是量角器的新手,想断言新添加的行是否包含我添加的文本。
我还想断言特定文本是否属于标题部分。
我在某种程度上尝试过,但我的代码失败了。
下面是我的代码
var row=element.all(by.repeater('dataRow in displayedCollection'));
var col=row.all(by.tagName('td'));
col.each(function(item)
{
item.getText().then(function(text)
{
})
})
})
解决方案
Sergey 是正确的,使用 async/await 会更容易,但在这里使用你的示例是我的做法。
假设新添加的行始终是表中的最后一行,您可能可以这样做:
const rows = element.all(by.repeater('dataRow in displayedCollection'));
const relevantRow = rows.last();
relevantRow.getText().then(test => {
expect(text).toContain(mySampletext);
});
如果新行并不总是最后一行,那么找到它的方法会有所不同。例如,如果每次添加一行时,表格都按字母顺序排序,那么您需要过滤行列表以找到您要查找的行,然后检查文本是否符合您的预期。
td
除非您想验证每列中的文本是否正确,否则您实际上并不需要获取每个元素。在这种情况下,您可能会这样做:
const expectedText = ['someText', 'in order', 'by', 'columns'];
const rows = element.all(by.repeater('dataRow in displayedCollection'));
const relevantRow = rows.last();
const columns = relevantRow.$$('td');
let coumnTextMatches = true;
columns.each((col, index) => {
col.getText().then(text => {
columntextMatches = expectedText[index] === text;
});
});
expect(columntextMatches).toEqual(true);
这可能完全准确,也可能不完全准确。我只是在没有测试的情况下就完成了它,但它应该非常接近类似的东西。
对于标题,它会是相似的。
- 获取所有标题元素
- 遍历每一个并检查文本是否符合您的期望
推荐阅读
- reactjs - 如何将道具验证为对象数组?
- python - 通过python将.txt文件保存在本地文件夹中
- pandas - 有没有办法在熊猫中通过 id 获取先前收到的消息?
- visual-studio-code - 隐藏在 Visual Studio 代码资源管理器中的目录
- elasticsearch - Elasticsearch 嵌套路径查询到对象类型
- javascript - 无法在 Javascript 中使用 php 变量
- javascript - 将 prompt-sync 要求转换为导入方法
- c# - 如何以编程方式禁用 Word 开始屏幕
- twilio - Twilio 现在支持子流吗?
- ubuntu - 文件描述符 3(管道:[34331])在 vgs 调用时泄露。父 PID 5424:/usr/sbin/grub-probe