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

How to check if an element exists within the body with cypress?

我想检查 nextjs-portal 标签是否出现在我的页面正文中,如果出现,则单击它。

我如何使用柏树做到这一点?

这行得通,但我现在需要 if 块:

cy.get('nextjs-portal').click();

类似

if (cy.get('nextjs-portal')) {
  cy.get('nextjs-portal').click();
}

这里不需要任何if。如果该元素不存在,cy.get('nextjs-portal') 将超时并且不会发生点击。

如果你真的真的需要条件测试,可以这样做,但它通常是一种反模式:

cy
  .get('body')
  .then($body => {
    if ($body.find('.nextjs-portal').length) {
      // now you know the element was found in the DOM
    } else {
      // your element was not found in the DOM
    }
  });