在 Cypress 中优化选择器

Posted

技术标签:

【中文标题】在 Cypress 中优化选择器【英文标题】:Refining selectors in Cypress 【发布时间】:2020-07-29 21:55:21 【问题描述】:

我正在尝试学习使用赛普拉斯的选择器的最佳实践。

我有一个元素隐藏在一个框架内的许多表中。这是一个我无法控制的应用程序,因此无法为赛普拉斯添加自定义选择器。完整的Xpath如下:

/html/body/table/tbody/tr[1]/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td/table/tbody/tr/td/a

a 标记内是我希望在其上添加click() 的链接。

<a class="menubuttontext" style="cursor:pointer" href="javascript:menuClick(1)">Men's Apparel</a>

有人可以提供“最佳”(或至少相对有弹性)的选择器吗?我不希望回到添加XPath库 - 我从多年开始与硒一样,如此学习。我不清楚我可以将多少个属性链接在一起,甚至如何链接 - 我正在研究文档,但非常感谢一些帮助。

【问题讨论】:

【参考方案1】:

如果您可以依赖链接元素的文本内容,您可以尝试使用 Cypress 命令cy.contains()

cy.contains('a.menubuttontext', "Men's Apparel").click();

您还可以对第二个参数使用正则表达式来微调您的搜索。

【讨论】:

以上是关于在 Cypress 中优化选择器的主要内容,如果未能解决你的问题,请参考以下文章

优化jQuery选择器

赛普拉斯测试 Material-UI 日期选择器不适用于 Github 操作

如何使用 jQuery 日期选择器优化引导输入标签

order by limit 造成优化器选择索引错误

jQuery 选择器优化

如何选择优化器 optimizer