如何在柏树中进行条件检查

Posted

技术标签:

【中文标题】如何在柏树中进行条件检查【英文标题】:How to do conditional checks in cypress 【发布时间】:2019-03-05 07:24:19 【问题描述】:

我有多个元素的树 - 一些元素在标题元素内 例如 1)父元素 子元素1 子元素 2)轴元素

子元素只有在用户点击父元素的展开选项时才可见 我正在尝试写一些东西来检查是否存在子元素以确定给定的元素是否是标题。 但 cypress 测试失败,抱怨找不到子元素。

有没有什么方法可以有条件地检查这些子元素的存在,即使标题没有展开。

如屏幕截图所示,这些元素只有在父节点的树节点展开时才可见。

我的目的是确定给定元素是否是标题,然后我可以决定要做什么

只是为了澄清我的问题 - 赛普拉斯有没有办法检查一个元素是否存在,如果不存在,我需要做一些其他的动作吗?

]2

【问题讨论】:

【参考方案1】:

显示孩子时是否随机。我问这个是因为您声明“子元素仅在用户单击父元素的展开选项时可见

如果引用是正确的,那么从那里开始会更有用。并做这样的事情:

cy.get('.div')
  .should('contain.class', 'k-drop-hint')
  .click()
cy.get('.div')
  .should('contain.class', 'tree-node-expanded')

这创建了一个避免条件测试的解决方案。

【讨论】:

@J.Thanks 先生,-正如您提到的,我单击了展开选项-然后我需要查看是否存在名为“树组”的类。例如,我的树有 Demographics ->Gender.Demographics 是标题,而 Gender 是它下面的正常元素,所以当我通过性别时 - 我需要做其他事情 if(cy.get('.tree-node').contains(' Gender',force: true).children('.tree-group',force: true)) //做一个动作 else //做一些别的事情 这就是我的代码的样子,有没有更好的方法来进行这些类型的检查,谢谢 cy.wrap($header).find('.tree-node-collapsed').click( ); if(cy.wrap($header).find('.tree-group')>0) cy.log('This is a header') else cy.log('Not a header'); 【参考方案2】:

有条件地做某事。

在做某事之前检查按钮是否处于活动状态。
    cy.get('button').then(($btn) => 
      if ($btn.hasClass('active')) 
        validateChanges();
        logoutUser();
      
     else
      // Just Logout
        logoutUser();
      
    )    

【讨论】:

以上是关于如何在柏树中进行条件检查的主要内容,如果未能解决你的问题,请参考以下文章

我如何等待在柏树中设置值?

如何等待元素在柏树中消失?

如何在柏树中上传图片?

在柏树中,我如何等待页面加载?

如何用柏树检查体内是不是存在元素?

如何在柏树的选择元素内选择第n个项目