javascript - 赛普拉斯:访问列表中的最后一项
问题描述
我在一个简单的 html 文件中有一个列表,只有收到的电子邮件,我想从特定的电子邮件地址访问列表中的最后一封电子邮件。我尝试使用 last(),但它没有用,它只是没有引导我到最后一项,而是到列表中的第一项
cy.contains('test@test5.com').last().click()
列表中的一项具有以下代码:
<br>
<a href="/Emails/2020-12-03%2016_40_54%20-%20test@test5.com.html">2020-12-03 16_40_54 - test@test5.com.html</a>
解决方案
这是赛普拉斯的一个问题,一些命令“产生”许多元素,而一些命令只“产生”一个元素。
您可以检查命令的contains() - Yields部分,该部分只为您提供一个元素,该元素将.first()
在列表中。
.contains() 产生它找到的新 DOM 元素。
IMO 文档应该更明确。您可以通过经验来学习它,但可能会浪费大量时间尝试使用看似合法的命令进行破解。
尝试.get()
and ,使用返回所有匹配元素.filter()
的 jQuery 伪选择器:contains()
cy.get('a')
.filter(':contains(test@test5.com)')
.last()
或:contains()
在.get()
cy.get('a:contains(test@test5.com)')
.last()
推荐阅读
- python - 试图测试从 yahoo Finance 抓取的代码
- php - Mysql union 按行排除重复条目
- android - 如何正确使用 Android MediaStore?
- python - Recursive ffmpeg script preserving the subfolder structure
- swiftui - 文本中的 SwiftUI 值不会改变
- python - 定义后将 Qt 属性附加到 Python 类;无法从 QML 访问
- scope - 谷歌驱动 API 范围:https://www.googleapis.com/auth/drive
- swift - 如何快速从协议中返回类型
- vue.js - 寻找Vue的连续滑动轮播
- python - MultiHeadAttnetion 中的 att_mask 和 key_padding_mask 有什么区别