cypress - 赛普拉斯:期望元素包含一些文本
问题描述
我想检查第二个.item
元素是否包含一些文本
cy.get('.item').then(($items) => {
expect($items).to.have.length(2);
expect($items[1]).to.contain('Published');
});
柏树抛出错误:TypeError: obj.is is not a function
。
我也试过expect($items[1]).text.to.contain('Published');
这次错误是TypeError: Cannot read property 'contain' of undefined
。
解决方案
由于它没有问题$items
,因此您的问题出在您期望的数组中$items[1]
。正如赛普拉斯所说,$items[1] 是未定义的,“不是函数”错误是同一个问题,但描述得更复杂:)。所以赛普拉斯找不到第二个元素,因此使用 Array 不起作用。如果你把它改成这样,它可能会通过:
cy.get('.item').then(($items) => {
expect($items).to.have.length(2);
expect($items).to.contain('Published');
});
您还可以以完全不同的方式检查特定元素:
cy.get('.item')
.eq(2)
.should('contain', 'Published')
这导致检索第二个“项目”并检查它是否包含“已发布”。当然,您可以将 eq() 更改为更高或更低的数字
推荐阅读
- haskell - 我对以下haskell代码有疑问
- assembly - 添加 2 个数字并让程序显示 2 位数字时遇到问题
- c# - SSRS 共享数据源用户名和密码“保存凭据”自动更改为“不使用凭据”
- angularjs - 如何以编程方式为 angularjs 1.5 设置默认选择值
- java - How do I calculate the average number of divisors in Java
- c# - PHP 等效于 C# SHA1 Unicode 散列
- ignite - Failing to connect Apache Ignite Cluster
- mysql - Filter bigquery table based on Id and dates from another table
- c# - Transform movement bounds to local axis
- user-interface - 在 Flutter 中为特定小部件设置默认颜色