如果没有找到任何元素,我可以防止 Cypress cy.get 失败吗?

2024-02-07

我正在使用赛普拉斯cy.get抓取元素,但如果没有,我的测试就会失败。 我不想让它失败。我希望它继续下去。测试只是列出存在的项目(如果有)。

const listItemTitle = '[data-cy-component=list-item-title]';
cy.get(listItemTitle).each(($el, index, $list) => {
  cy.wrap($el).then(($span) => {
    const spanText = $span.text();
    cy.log(`index: ` + index + ' ' + spanText);
  });
});

我本以为,如果那里没有元素 - 这段代码仍然可以,但事实并非如此。当我运行它时,我收到此错误:CypressError: Timed out retrying: Expected to find element: '[data-cy-component=list-item-title]', but never found it.

它在存在元素的地方工作得很好。如果没有找到元素,我想继续进行不同的测试。

这是我尝试过的一个实验:

let count: number = Cypress.$(listItemTitle).length;
cy.log('before:' + count);
cy.get(actionsBarActionsAdd).click();
cy.get(singlePickerSearch).type('Assets' + '{enter}');
cy.get(listItemCheckboxTitle)
  .first()
  .click();
cy.toast({
  type: 'Success',
});
count = Cypress.$(listItemTitle).length;
cy.log('after:' + count);
cy.get(listItemTitle).each(($li, index, $lis) => {
  cy.log('interface no. ' + (index + 1) + ' of ' + $lis.length);
  cy.wrap($li).click();
});

结果是这样的:

18 LOG        before:0
19 GET       [data-cy-component-key="actions-add"] input
20 CLICK
21 GET       [data-cy-component=single-picker-search] input
22 TYPE      Assets{enter}
23 GET       [data-cy-component="list-item-checkbox-title"]
24 FIRST
25 CLICK
26 GET       .iziToast    toast2
27 ASSERT    expected [ <div.iziToast.iziToast-opening.fadeInUp.iziToast-theme- 
alloy.iziToast-color-green.iziToast-animateInside>, 1 more... ] to have class iziToast-color-green
28 LOG       after:0
29 GET       [data-cy-component=list-item-title]
30 LOG       interface no. 1 of 1

最终表明Cypress.$(listItemTitle).length不计算带有选择器的元素数量:listItemTitle。

Update:

通过放置一个cy.wait(1000);在执行 Add 后(在我的实验中) - 给 DOM 时间来更新 - 找到了新元素。对于更具体的选择器,不需要等待


您可以通过以下方式使用 jqueryCypress.$检查是否存在。

const listItemTitle = '[data-cy-component=list-item-title]';
if (Cypress.$(listItemTitle).length > 0) {
  cy.get(listItemTitle).each(($el, index, $list) => {
    cy.wrap($el).then(($span) => {
    const spanText = $span.text();
    cy.log(`index: ` + index + ' ' + spanText);
    });
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果没有找到任何元素,我可以防止 Cypress cy.get 失败吗? 的相关文章

随机推荐

  • 如何将日期字符串转换为字符串(yyyy-MM-dd)。这样做时,我得到空值?

    我的数据为 customerFromDate 01 Apr 2010 和 customerToDate 30 Apr 2010 这是一个字符串 我想将该格式转换为字符串 yyyy MM dd 但这样做时我得到了空值 请参阅我尝试过的以下代码
  • 允许自定义文件在加载数据时双击并打开我的应用程序[重复]

    这个问题在这里已经有答案了 就像您在 Windows 中进行引用一样 要打开 txt 文件 它可能会打开 NotePad exe 和 或 Word exe 同时将文件中的文本加载到编辑器中 如何使用我的桌面应用程序执行此操作 我有一个扩展名
  • 使用 css 媒体查询触发 jquery

    我在我的项目中使用 css 媒体查询来创建一个适用于任何尺寸屏幕的网站 我希望触发不同的 jquery 函数 就像使用 css 一样 例如 如果浏览器尺寸在1000px到1300px之间 我想调用以下函数 mycarousel jcarou
  • 日志填充为:与远程主机的通信发生错误

    我们正在尝试了解此错误发生的情况 这只是用户与网站断开连接吗 System Web HttpException An error occurred while communicating with the remote host The e
  • Chrome 的 rem 计算在 Mac 和 Windows 上的字体大小和行高之间有何差异?

    我整理了一支非常基本的笔来演示这里发生的事情 https codepen io anon pen ZjbmWE https codepen io anon pen ZjbmWE 为那些没有 Mac 的人提供一个屏幕截图 https i st
  • Span 不能是嵌套局部变量。为什么这是一个限制?

    以下内容无法编译 既然这不是匿名方法 lambda 表达式或查询表达式 为什么这是一个限制 将文本作为 ref ReadOnlySpan 传递效果很好 void TestNestedSpan var text Some text AsRea
  • Colorbox 使灯箱在滚动时固定

    我使用 jquery colorbox 当页面内容较大并且打开colorbox时 然后颜色框随着页面内容滚动 我希望即使背景内容滚动也需要修复颜色框 请帮我解决这个问题 也许所有这些答案都来自 colorbox 的早期版本 但 fixed
  • Java 颠倒文本 - 错误还是功能?

    在使用 Java 字体类和 Swing 时 我将字体大小设置为负值 我发现这会使文本被颠倒绘制 这是一个错误还是一个功能 谁能解释为什么会发生这种行为 试试看 import java awt Font import java awt Gra
  • 在 aspx 中包含 C# 文件代码

    我想在我的位置执行以下代码C 页 我知道这里还有更多类似的问题 但我找不到可以帮助我的东西 但是我在第一行收到服务器错误 The server block is not well formed 代码是 WebIntegrationRestS
  • “好”数字的算法

    如果数字 x 的任意两个连续数字之和在 k 和 2k 之间 则给定数字 x 是 好 我需要找到一种算法 对于给定的数字 k 和给定的数字 n 找出存在多少个 好 n 位数字 我在 PHP 中为此实现了一个实现 但复杂性太大 我正在搜索所有这
  • 对指针调用 free 两次

    我在讲座中被教导 召唤free 两次使用指针真的非常非常糟糕 我知道这是一个很好的做法 将指针设置为NULL 在释放它之后 然而 我仍然没有听到任何关于为什么会这样的解释 据我了解 方法malloc 有效 从技术上讲 它应该跟踪它已分配并供
  • WebException:服务器违反了协议。 Section=ResponseStatusLine(调用 Marketo SOAP API)

    我正在尝试调用 Marketo SOAP Web 服务 通过 ASP NET C 我成功添加了 Web 服务引用并尝试使用以下代码行调用它 SuccessGetLead lead service getLead paramsgetlead
  • 使用显示时没有底部填充:网格和滚动

    我有一个容器div有一些填充 display grid and overflow auto放 当一个孩子div的高度比父级的高度大 并且出现一个滚动条 它会滚动 以便没有底部填充 这里有一个Fiddler https jsfiddle ne
  • 绘图中的对数色阶

    我正在尝试使用一些异常值来可视化数据Plotly and Python3 异常值导致色阶图例看起来很糟糕 只有很少的高数据点 但图例看起来很糟糕 2k 和 10k 之间的空间太大 所以问题是 如何改变右侧 颜色图例 的外观 见下图 以便它主
  • 仍然可以在节点 run_list 中指定确切的食谱版本吗?

    我的笔记中有这样的内容 run list recipe email protected cdn cgi l email protection 可以明确指定在节点 run list 中使用的说明书版本 但我无法让它工作 也找不到任何文档来说明
  • TryFrom<&[T]> 和 TryFrom> 有什么区别?

    似乎有两种方法可以尝试将向量转换为数组 或者通过切片 fn a 或直接 fn b use std array TryFromSliceError use std convert TryInto type Input Vec
  • 如何将图像从 Laravel 控制器发送到 API Rest [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要从存储中获取图像Laravel并将其从控制器发送到外部 API REST 我正在使用 guzzlehttp multipart 但 A
  • 在 JPA 中使用泛型 @OneToMany

    我有一个班级 分支 我想在这里将其用作 Dictionary 和 Link 类 Entity public class Branch
  • 捕获异常时可以使用gdb进行回溯吗?

    我刚刚开始使用 C 异常并希望得到正确的解决方案 我的想法是在捕获异常时生成某种回溯信息 最初我有类似的想法C 中异常的调用堆栈 https stackoverflow com questions 3222890 call stack fo
  • 如果没有找到任何元素,我可以防止 Cypress cy.get 失败吗?

    我正在使用赛普拉斯cy get抓取元素 但如果没有 我的测试就会失败 我不想让它失败 我希望它继续下去 测试只是列出存在的项目 如果有 const listItemTitle data cy component list item titl