javascript - 尝试使用赛普拉斯对 CSS 属性进行断言时出现“无效主题”
问题描述
我用柏树创建了一些端到端。本地测试工作正常,但是当这些测试在 CircleCI 上运行时,它显示来自 cypress 的错误
CypressError: Timed out retrying: You attempted to make a chai-jQuery assertion on an object that is neither a DOM object or a jQuery object.
The chai-jQuery assertion you used was:
> css
The invalid subject you asserted on was:
> 250px
To use chai-jQuery assertions your subject must be valid.
This can sometimes happen if a previous assertion changed the subject.
这是导致此错误的代码。
cy.get('.vce-single-image')
.should('have.css', 'width')
.and('have.css', 'height')
这个也是同样的错误。
cy.window()
.then((win) => {
cy.get('.vce-row')
.should('have.css', 'width')
.and('have.css', 'height')
})
我试图在first()
之后添加,get()
但它没有帮助。我在不同的设备上本地尝试过,没有任何问题。
对于 CircleCi docker 图像,我使用自己的图像,它基于circleci/php:7.3.2-apache
. 这是链接https://github.com/wpbakery/ci-wordpress/blob/master/circleci/Dockerfile。
解决方案
通常,cy.should()
产生它被链接的值。然而,一些断言,包括have.css
,改变了 产生的主题cy.should()
。(这里是相关chai-jquery
文档)
所以,这应该工作:
cy.get('.vce-single-image').should('have.css', 'width', '250px')
cy.get('.vce-single-image').should('have.css', 'height', '250px')
推荐阅读
- azure - Azure ARM 模板依赖于不工作(重新部署成功)
- swift - 更新到 12.2 Exc_Bad_Access 后的 XCODE 模拟器错误(代码=50,地址=0x11b40e1ad)
- python - 如何为 Keras/Tensorflow 机器学习创建(嵌套?)csv 文件加载器?
- javascript - 当子项在 Wordpress 子菜单中处于活动状态时,从父项中删除活动类
- mongodb - 在循环中运行 mongodb 查询
- oracle - Oracle远程连接防火墙KO
- google-sheets - 计算逗号分隔的列列表中的唯一值
- python - URL 不能包含控制字符 - Python
- postgresql - 无法在 postgres 中插入嵌套记录
- reactjs - SetState 外体 reactjs