将Cypress cy.get()与包含选择器一起使用无法正常工作

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

我正在尝试使用赛普拉斯中的选择器来查找网页中的数据。它似乎没有按我预期的那样工作,但可能只是我不了解它的工作方式。

我正在执行以下操作。 click()只是为了让我可以查看cy.get()是否起作用,我正在尝试找到正确的选择器。我最终将在复杂的cy.contains()中使用选择器,我试图从头开始构建。

cy.get('body:contains(ATHLETE FIRST NAME)').click();

我有一个元素,上面的文字在两个地方。但是,上面的contains()似乎找不到它,但它不会导致失败。

如果我将该行更改为:

cy.get('div:contains(ATHLETE FIRST NAME)').click();

它告诉我它发现了12次。似乎只找到bodydiv,却完全忽略了:contains()。我以为我一定做错了,但是我发现的一个例子似乎是这样做的,根本找不到很多例子。

jquery-selectors cypress
1个回答
0
投票

[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} 单击每个元素。

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