当我在Cypress中运行测试时,它总是向下滚动到元素,所以它在屏幕的最顶部。但我在为WordPress系统编写测试时,固定栏总是在屏幕的顶部,占用了75px(ish)。所以当我的测试运行时,我永远看不到发生了什么。
有没有一种方法,我可以为所有的测试定义 * all * 元素,这样当它们在焦点上时,它们从顶部开始是200px的?就像一个全局常量一样?
- 代码**
cy.get( 'tr[data-slug="cmb2"]' ).should( 'have.class', 'active' );
- 请看这里的问题:**
解决方案尝试1:在.env
配置文件中设置
如果我能在cypress.json
-文件中设置它,那就太聪明了。我读了Cypress配置上的文档,但是在那里找不到它。
解决方案尝试2:使用CSS隐藏管理员栏
当在后端运行Cypress测试时,我也可以尝试添加一个样式表来始终加载,但是这是一个正常的解决方法吗?
即使我这么做了,我也不知道该怎么做。
解决方案尝试3:使用scrollIntoView
我尝试添加scrollIntoView
和一些选项:
cy.get( 'tr[data-slug="cmb2"]' ).scrollIntoView({ offset: { top: 150, left: 0 } }).should( 'have.class', 'active' );
但是我仍然看不到我的div的标题,我也试过the solution suggested here,看起来有点像它。
解决方案尝试4:将滚动行为添加到我的.env
文件
我把它添加到我的.env
文件中:
{
"env": {
"name": "staging",
...
},
"viewportWidth": 1100,
"viewportHeight": 1800,
"watchForFileChanges": false,
"chromeWebSecurity": true,
"scrollBehavior": "bottom" <---- My attempt!
}
但没有雪茄:
3条答案
按热度按时间xoefb8l81#
我不确定你的WordPress站点,但以下内容适用于Cypress scrolling behaviour on
get
and relative positionning中引用的Material-UI站点.scrollIntoView()偏移量应为负值
使用本机滚动进入视图
使标题透明
使用.scrollTo()
此命令应用于滚动容器,而不是目标元素,因此定位可能不是每次都正确。
g2ieeal72#
实际上,在这个已经报告的here上有一个bug。Cypress Peeps修复了这个here。但是它需要合并。
2ledvvac3#
通过get()、contains()、click()上的网站顶部菜单隐藏元素的解决方案。
将以下内容添加到Cypress全局配置或测试配置。
从我的cypress.config.ts(缩小到焦点):
然后使用cy.scrollTo()、cy.scrollIntoView()、动态等“手动”滚动
参考文献: