我正在尝试使用赛普拉斯中的选择器来查找网页中的数据。它似乎没有按我预期的那样工作,但可能只是我不了解它的工作方式。
我正在执行以下操作。 click()
只是为了让我可以查看cy.get()
是否起作用,我正在尝试找到正确的选择器。我最终将在复杂的cy.contains()
中使用选择器,我试图从头开始构建。
cy.get('body:contains(ATHLETE FIRST NAME)').click();
我有一个元素,上面的文字在两个地方。但是,上面的contains()
似乎找不到它,但它不会导致失败。
如果我将该行更改为:
cy.get('div:contains(ATHLETE FIRST NAME)').click();
它告诉我它发现了12次。似乎只找到body
或div
,却完全忽略了:contains()
。我以为我一定做错了,但是我发现的一个例子似乎是这样做的,根本找不到很多例子。
[click
事件可以由cypress默认在单个元素上触发。
考虑此模板:
<body>
<div>
<div>
<div>ATHLETE FIRST NAME</div>
</div>
</div>
</body>
[cy.get('body:contains(ATHLETE FIRST NAME)').click()
将返回作为单个元素的body
元素,因此不会出现错误。
但是
cy.get('div:contains(ATHLETE FIRST NAME)').click()
将返回3 div
个元素,因此您将看到此错误:
cy.click()只能在单个元素上调用。你的主题 包含3个元素。如果您想序列化,请传递{Multiple:true} 单击每个元素。