protractor - 如何检查 ElementArrayFinder 是否包含子字符串
问题描述
我有一个ElementArrayFinder
包含整行表格的内容。我想做一个断言来检查它是否有一个子字符串(不管在哪里)。
const row: ElementArrayFinder = $$('div > div#myRow');
row.getText()
已解决的退货承诺:
['id', 'some data', 'expected text xoxo', 'some more data']
最接近的解决方案:
expect(row.getText()).to.eventually.deep.includes('expected text');
返回:
AssertionError: expected [ Array(4) to deep include 'expected text']
expect(row.getText()).to.eventually.deep.includes('expected text xoxo');
通行证
任何建议表示赞赏。
解决方案
只是为了避免误解 - elementArrayFinder 可能没有元素的文本值。考虑它的最佳方式是 elementFinder 是如何在页面上找到您的元素的参考(只是方向)
现在,由于您现在可以使用.getText()
elementArrayFinder,因此很容易做您想做的事情。但在此之前请记住,只有当您的数组中的元素完全等于您的'expected text'
. 例如,
expect('expected text xoxo', 'some more data']).toContain('expected text xoxo') // this succeed
expect('expected text xoxo', 'some more data']).toContain('expected text') // this fails
// because 'expected text xoxo' !== 'expected text'
但是,如果您想检查它们数组的任何元素是否部分包含字符串,请使用 vanilla js array.some()
let arr = ['id', 'some data', 'expected text xoxo', 'some more data'];
expect(arr.some((item)=>{return item.includes('expected text')})).toBe(true)
推荐阅读
- codeigniter - Codeigniter Compoer 自动加载但没有 Composer.json 文件
- python - SqlAlchemy 中的 order_by Levenshtein 距离
- ios - 混合应用程序中的渐进式 Web 应用程序(PWA):存储关系离线数据
- java - 根据多个“可选”条件过滤 HashMap
- java - 如何计算不同的无线电组?
- python - 错误图像 C:\Windows\system32\xxx.dll 不是为在 Windows 上运行而设计的,或者它包含通过 Selenium 使用 ChromeDriver 和 Chrome 的错误
- matrix - LAPACK dorgqr 例程的内存要求
- python - 如何在多对多关系中添加数据库约束
- mysql - mysql JSON_ARRAYAGG 或 GROUP_CONCAT 有限制
- excel - 当单元格值更改时,运行宏