【问题标题】:Checking radio buttons in Cypress检查赛普拉斯中的单选按钮
【发布时间】:2020-06-11 10:28:56
【问题描述】:

我对 Javascript 非常陌生,这是我使用 Cypress 的唯一第二周,所以我需要帮助来获得单击单选按钮。我总是从赛普拉斯收到错误。

我要检查的元素如下所示: <input class="XyzTypeRadio" type="radio" name="zzz_type" value="2">

在阅读赛普拉斯文档(https://docs.cypress.io/api/commands/check.html#Syntax)后,我尝试实现的是: cy.get('[type="radio"]').first('.XyzTypeRadio').check('value=2') 也尝试过简单的.... .check('2')... .check('Xyz')

【问题讨论】:

  • 欢迎使用 Javascript 进行编程 :) 我不熟悉 Cypress,但如果您添加指向“检查“ 功能!另外,试试这个:打开浏览器的控制台,看看浏览器是否在控制台报告任何错误(通常是红色的)。
  • 感谢您的回复!这不是我写的代码,它是 10 多年前写的,所以我确信它是有效的。但我正试图将其包含在验收测试中并从赛普拉斯得到错误。
  • 新浪,谢谢。我从“inspect element”得到了这段代码,所以我知道控制台在哪里,但它在这里对我没有帮助。
  • 我的猜测是“第一个”函数没有按照文档中描述的方式使用。试试这个cy.get('[type="radio"].XyzTypeRadio').first().check(),看看会发生什么。

标签: javascript radio-button cypress


【解决方案1】:

(编辑和工作答案)

试试这个:

cy.get('[type="radio"].XyzTypeRadio').check("2")

或者如果你不关心选中哪个单选按钮,你可以检查第一个:

cy.get('[type="radio"].XyzTypeRadio').first().check()

要点:

  • first() 函数不理解选择器,这就是为什么我们需要将选择器“.XyzTypeRadio”传递给get()
  • check() 函数需要一个或多个值作为它的参数,因此我们简单地给它“2”而不是“value=2”。
  • check() 函数做了一些选择,即调用 check("2") 之前的所有结果都是输入列表,而 check("2") 函数搜索并选择值为 " 2"。
  • 如果我们想检查第一个单选按钮,我们可以使用 first().check(),或者我们可以删除 first() 并使用 check("2") 检查具有特定值的单选按钮。

【讨论】:

  • 不行,这不起作用,我在询问之前尝试过,双引号和单引号。 Cypress 返回的错误是“CypressError: Timed out retrying: E​​xpected to find element: 'undefined', but never found it.”
  • 尝试第二个(不带“first()”)
  • 完美! cy.get('[type="radio"].XyzTypeRadio').check("2") 成功了。你真好!
  • 太棒了!我编辑了答案以仅包含工作解决方案并添加了一些要点:)
  • 太好了,谢谢!希望其他人找到使用它。并且 .first 函数也是一个可行的解决方案:如果您不想添加任何值,这很好,它会获取第一个值并继续。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
相关资源
最近更新 更多