Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Automation cypress-执行操作直到元素显示在屏幕上_Automation_Automated Tests_Cypress - Fatal编程技术网

Automation cypress-执行操作直到元素显示在屏幕上

Automation cypress-执行操作直到元素显示在屏幕上,automation,automated-tests,cypress,Automation,Automated Tests,Cypress,我知道,但是来自SeleniumWebDriver的背景,我非常习惯在测试中使用这种逻辑 我正在测试一款类似kindle设备的翻页功能,它可以让用户更容易阅读,而不是滚动 目前,由于KaiOS基于Firefox操作系统,在计算机上以类似于设备的方式使用该应用程序的唯一方法就是使用Firefox。问题是,即使使用firefox,在cypress上运行测试时,页面翻转也没有按预期工作,因此当我们翻转页面时,页面不会转到与设备或firefox上相同的页面 因此,由于我无法确定如何找到我要查找的元素,我

我知道,但是来自SeleniumWebDriver的背景,我非常习惯在测试中使用这种逻辑

我正在测试一款类似kindle设备的翻页功能,它可以让用户更容易阅读,而不是滚动

目前,由于KaiOS基于Firefox操作系统,在计算机上以类似于设备的方式使用该应用程序的唯一方法就是使用Firefox。问题是,即使使用firefox,在cypress上运行测试时,页面翻转也没有按预期工作,因此当我们翻转页面时,页面不会转到与设备或firefox上相同的页面

因此,由于我无法确定如何找到我要查找的元素,我需要不断翻页并查找它,然后与它交互

我试过了

我需要的是相当简单的:

转到第页 检查元素是否存在,如果不存在,请翻页。不断翻页,直到找到元素为止 一旦找到元素,就与之交互
尝试使用有条件地在页面上执行操作

尝试使用有条件地在页面上执行操作

我已经在中回复了,但我也将在此处编写解决方案以帮助其他用户

嗯,一步一步,你需要

转到第页 简单的

西。访问 检查元素的存在 最简单的方法是利用公开的Cypress.$jQuery实例,自己检查元素是否存在

西。访问 cy.waitill=>!!柏树。$'elementToBeChecked'。长度 =>!!Cypress.$'elementToBeChecked'。length是WaitTill期望的checkFunction,它返回布尔值,WaitTill将重试该函数,直到返回true

检查元素是否存在,如果不存在,请翻页 西。访问 cy.waitill=>{ 如果!Cypress.$'elementToBeChecked'。长度{ 返回cy.flipage.then=>false }否则{ 返回真值 } } cy.flipage.then=>false对于确保che checkFunctin解析为false非常有用。Waitill将调用check函数,直到它返回true

不断翻页,直到找到元素为止 完成

一旦找到元素,就与之交互 西。访问 cy.waitill=>{ 如果!Cypress.$'elementToBeChecked'。长度{ 返回cy.flipage.then=>false }否则{ 返回真值 } } cy.get'elementToBeChecked'。单击 如果你想更详细地解释为什么像你这样的任务需要等待,看看吧


希望它有帮助我已经在中回复了,但我也将在这里编写解决方案,以帮助其他用户

嗯,一步一步,你需要

转到第页 简单的

西。访问 检查元素的存在 最简单的方法是利用公开的Cypress.$jQuery实例,自己检查元素是否存在

西。访问 cy.waitill=>!!柏树。$'elementToBeChecked'。长度 =>!!Cypress.$'elementToBeChecked'。length是WaitTill期望的checkFunction,它返回布尔值,WaitTill将重试该函数,直到返回true

检查元素是否存在,如果不存在,请翻页 西。访问 cy.waitill=>{ 如果!Cypress.$'elementToBeChecked'。长度{ 返回cy.flipage.then=>false }否则{ 返回真值 } } cy.flipage.then=>false对于确保che checkFunctin解析为false非常有用。Waitill将调用check函数,直到它返回true

不断翻页,直到找到元素为止 完成

一旦找到元素,就与之交互 西。访问 cy.waitill=>{ 如果!Cypress.$'elementToBeChecked'。长度{ 返回cy.flipage.then=>false }否则{ 返回真值 } } cy.get'elementToBeChecked'。单击 如果你想更详细地解释为什么像你这样的任务需要等待,看看吧


如果您认为可以使用,然后使用document.querySelector手动检查元素是否存在,希望这会有所帮助,因为如果元素不存在,cy.get将无法通过测试。我尝试使用cy.logdocument.querySelector'selector'但不记录任何内容…如果您认为可以使用,然后手动检查元素与document.querySelector一起出现,因为如果元素不存在,cy.get将无法通过测试。我尝试使用cy.logdocument.querySelector'selector',但没有记录任何内容…从文档中我不太了解将重试检查放在何处…从文档中我不太了解将重试检查放在何处…现在正在制作中,谢谢!很高兴它现在对生产有所帮助,谢谢!很高兴这有帮助