赛普拉斯:cy.get(“a”)。find(“b”)和cy.get(“a b”)之间的任何区别

问题描述 投票:3回答:1

看起来他们是完全相同的。 cy.get("a").find("b")cy.get("a b")之间的产量是否有任何差异?

(其中ab是一些选择器,例如divspan,或.someClass.someOtherClass。)

javascript cypress
1个回答
5
投票

结果没有差异,但实施方面存在差异。

.find()命令的文档:

此命令的查询行为与.find()在jQuery中的工作方式完全匹配。

换一种说法,

cy.get("a").find("b");

相当于以下JQuery:

$("a").find("b");

$("a").find("b");将产生与$("a b")相同的结果,但将使用不同的方法来实现目标。


我已经做了一些测试,在一个相当复杂的页面上确认这个:

testing result

请注意cy.get("td").find("tr")cy.get("td tr")的数字结果是如何相同的。


2
投票

正如你在问题中所述,cy.get("a").find("b")cy.get("a b")之间没有区别。但是赛普拉斯的findget命令之间最重要的区别是cy.get() is chained off of cy, it always looks for the selector within the entire document as stated in Cypress documents。但是,再次stated in Cypress documents找到的工作如下:

获取特定选择器的后代DOM元素。

因此命令cy.get("a").find("b")返回所有b元素,这些元素是a元素的继承者,但cy.get("a").find("b")发现所有ab元素,无论它们是父母和孩子。

© www.soinside.com 2019 - 2024. All rights reserved.