【问题标题】:Cucumber Capybara find checkbox by other than id, name, or labelCucumber Capybara 通过 id、name 或 label 以外的方式查找复选框
【发布时间】:2013-02-06 16:46:05
【问题描述】:

我正在尝试检查我的黄瓜测试中的一个复选框,但我不知道如何告诉它通过 id、名称或标签以外的任何内容进行搜索。我不断收到此错误:

cannot check field, no checkbox with id, name, or label 'xxxx' found

我为每个复选框添加了一个“标识符”属性,具有唯一值,并希望通过这些术语找到该框。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 checkbox cucumber capybara


    【解决方案1】:

    您的意思是您为每个复选框添加了一个名为identifier 的新属性?如果是这样,那么您可以使用 CSS 定位器找到它们:

    find(:css, "[identifier='#{my_checkbox_identifier}']").set(true)

    set-ing 复选框到true 选中它,使用false 取消选中它。)

    【讨论】:

    • 是的,你是对的——我的意思是我把它作为一个属性添加了。但是,当我尝试该代码时,我收到此错误:无法找到 css "[identifier='Check:NCO']" (Capybara::ElementNotFound)。生成的 HTML 为:
    • 我没有时间尝试该代码,也许您需要指定元素,例如'输入[标识符=...'
    • 仍然似乎对我不起作用(无法找到 css "input[identifier=\"Check:NCO\"]" (Capybara::ElementNotFound))。
    • 我想知道 Check:NCO 是从哪里来的——你是在传递那个值吗?它是您要匹配的标识符吗?
    • 我去编辑帖子,发现我的代码中有一个错字。我修好了,一切都很好。所以你提到的两件事正是我需要的(还有我打字更好......)谢谢!
    【解决方案2】:

    意识到这个问题已经很老了,答案可能对某个地方的某人仍然有用。我发现以下工作:

    find(:xpath, "//input[@identifier='my_checkbox_identifier']").set(true)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 2022-11-11
      相关资源
      最近更新 更多