Bit*_*ise 6 html rspec capybara
我可能已经这样做了 100 次,但我一生都无法理解为什么它告诉我它找不到这个对象。这是我的html:
PS 我已经验证我在正确的页面上,并且当我执行操作时我可以看到顾问save_and_open_screenshot
<div class="panel">
<%= form.label :advisor, class: "panel__label" %>
<%= form.radio_button :advisor_or_client, "advisor", class: "panel__input__radio advisor" %>
</div>
<div class="panel">
<%= form.label :client, class: "panel__label" %>
<%= form.radio_button :advisor_or_client, "advisor", class: "panel__input__radio client" %>
</div>
Run Code Online (Sandbox Code Playgroud)
choose('advisor')
Run Code Online (Sandbox Code Playgroud)
Failure/Error: choose('advisor')
Capybara::ElementNotFound:
Unable to find radio button "advisor"
Run Code Online (Sandbox Code Playgroud)
根据提供的信息,如何选择功能规格的单选按钮?
choose按名称、id 或标签文本定位单选按钮 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#choose-instance_method。而不是您指定value输入的(我假设第二个值应该是“客户端”而不是您拥有的“顾问”)。由于您没有 ids,并且名称不明确,因此您可以使用参数option(匹配值)来缩小范围以找到正确的无线电。所以
choose('trade_request_submission[advisor_or_client]', option: 'advisor')
Run Code Online (Sandbox Code Playgroud)
或潜在地
choose(option: 'advisor') # if you don't have any other radios with that value
Run Code Online (Sandbox Code Playgroud)
另一种选择是指定标签文本,但这需要将 id 添加到与标签上的属性input匹配的元素中,以正确链接它们,在这种情况下,您可以这样做for
choose('Advisor')
Run Code Online (Sandbox Code Playgroud)