我有一个我想检查的复选框。这个按钮有一个confirm alert
关联和其他一些东西。
<label>
<div class="check label-checked">
<span>Confirm</span>
<i class="fa fa-square-o"></i>
<input class="confirm-reservation-js" hidden="" name="actions_to[56]" type="checkbox" value="confirm">
</div>
</label>
# js.erb
$(__s.bookings + ".confirm-reservation-js").click(function() {
var input, form;
if (confirm( "<%= I18n.t('.reservations.alert.action') %>" )) {
form = $(__s.bookings + '[id^=edit_booking_]');
input = $("<input>")
.attr("type", "hidden")
.attr("name", "confirm").val("true");
form.append($(input));
form.submit();
}
});
我不能用Capybara检查这个按钮。 我在尝试:
1- find(locator, visible: false).click
2- find(locator).trigger('click')
locator
是我输入的路径。
# Gemfile
gem 'capybara', '2.0.2'
gem 'capybara-webkit', '~> 1.1.0'
# Test file
it "..." , js: true do
有人可以帮我查看此复选框吗?
感谢。
答案 0 :(得分:2)
Capybara有一个选项(Capybara.ignore_hidden_elements)来配置在DOM中查找节点的默认查询行为。它的默认值为false。这意味着您的css或xpath查询将查找文档中的所有节点,无论它们在页面上的可见性如何。您可以通过传递:visible =&gt;覆盖单个查询的此行为。 true | false选项。
更改水豚的默认行为,即
Capybara.ignore_hidden_elements = true
您也可以点击链接:https://www.jetbrains.com/ruby/help/adding-files-to-version-control.html:)