【问题标题】:How to click link in Cypress?如何在 Cypress 中点击链接?
【发布时间】:2020-03-26 20:36:44
【问题描述】:

我想单击页面中的以下链接,其中包含其他几个类似的链接。 我已经尝试了 cy.get() 有多种替代方法。我也试过 cy.contains('Content 6') 但收到错误。

<div class="column">
    <a href="/admin/contents/109">
        <div class="ui segment">
            <div class="ui center aligned header">
                Content 6
                <div class="sub header">Add description to content packages
                </div>
            </div>
        </div>
    </a>
</div>

这是我的最终解决方案:

cy.get('a[href*="admin/contents"]').contains('Content 6').click()

我在此页面上找到了解决方案,并在名为 Udo 的用户的帮助下找到了解决方案:https://docs.cypress.io/faq/questions/using-cypress-faq.html#How-do-I-get-an-element’s-text-contents

href 代码提供了更多关于如何处理此问题的示例,而不是相同问题的其他示例。

【问题讨论】:

  • 这能回答你的问题吗? how to click the link in cypress
  • 我之前已经对此进行了测试,但没有得到正确的结果。不知道用 cy.get('.icon-chevron-down') .parent() .click()''' 替换什么 ".icon-chevron-down"
  • 听起来您的问题不是单击元素,而是找到实际元素。你能发布一下你现在是如何选择它的吗? 'contents/109' 是动态的吗?
  • 您对代码有任何控制权吗?添加您自己的 id 或 test-id?我看到你找到了解决方案。我自己想要一个不会改变的明确 ID。
  • 如何找到我的 id 或 test-id?您能否也具体说明您的要求? @Maccurt

标签: reactjs href cypress


【解决方案1】:

您必须“获取”正确的元素才能点击。在您的情况下,可以这样处理:

// find the link with href attribute containing "admin/contents" and click it
cy.get('a[href*="admin/contents"]').click()

【讨论】:

  • 您的示例似乎找到了实际页面,但与链接本身没有任何联系。你说得对,'Contents/109' 是动态的。但是我的测试每次运行时都会添加一个名为 Content 6 的新内容。所以问题可能是如何找到该文本。
  • 检查我上面的解决方案。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2021-06-20
  • 2020-04-28
  • 2017-05-12
  • 2017-08-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
相关资源
最近更新 更多