Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
User interface Cypress:对UI元素的存在进行条件测试的最佳实践_User Interface_Testing_Automated Tests_Conditional_Cypress - Fatal编程技术网

User interface Cypress:对UI元素的存在进行条件测试的最佳实践

User interface Cypress:对UI元素的存在进行条件测试的最佳实践,user-interface,testing,automated-tests,conditional,cypress,User Interface,Testing,Automated Tests,Conditional,Cypress,我正在尝试用Cypress开始自动测试。但很显然,学习一个新概念和一门新语言是很有挑战性的。。。因此,我不确定是否找到了根据条件简单测试UI元素存在性的最佳解决方案。 所有元素都呈现在服务器端 所以基本上有一个DIV元素,它可以包含 类“card”的DIV元素 或 “无操作”类的P元素 为了有条件地测试这一点,我想出了以下代码: cy.get('div#section_暂停_op')。然后($div)=>{ 如果($div.find('div.card')。长度>0){ cy.get('

我正在尝试用Cypress开始自动测试。但很显然,学习一个新概念和一门新语言是很有挑战性的。。。因此,我不确定是否找到了根据条件简单测试UI元素存在性的最佳解决方案。
所有元素都呈现在服务器端

所以基本上有一个DIV元素,它可以包含

  • 类“card”的DIV元素

  • “无操作”类的P元素
为了有条件地测试这一点,我想出了以下代码:

cy.get('div#section_暂停_op')。然后($div)=>{
如果($div.find('div.card')。长度>0){
cy.get('div#section _暂停_opdiv.card')。应('exist')
}否则{
cy.get('div#section _opp.no-ops')。应('exist')
}
})

因此,为了在一种情况下测试类“card”的DIV元素的存在性,首先我必须使用find()找到它。这是一个好的实践,还是可以用更好的方式来实现?

正如您提到的最佳实践,我将用它来回答,而不是代码建议:

我想说的是,你的测试应该基于触发这些条件,并且确切地知道在测试期间某些东西将处于什么状态

是什么让有“卡片”的DIV出现的?进行触发该条件的测试,然后断言该元素存在

是什么让“无操作”类的p出现的?进行触发该条件的测试,然后断言该元素存在


仅仅因为页面上有某些内容并不意味着它应该存在。

正如您提到的最佳实践,我将对此进行回答,而不是代码建议:

我想说的是,你的测试应该基于触发这些条件,并且确切地知道在测试期间某些东西将处于什么状态

是什么让有“卡片”的DIV出现的?进行触发该条件的测试,然后断言该元素存在

是什么让“无操作”类的p出现的?进行触发该条件的测试,然后断言该元素存在


仅仅因为页面上有某些内容并不意味着它应该存在。

是的!!对我本来也打算做同样的事。你不想做你正在做的事。你的设置应该设置你期望的场景。是的!!对我本来也打算做同样的事。你不想做你正在做的事。您的集合应该设置您期望的场景。