简体   繁体   中英

Check hidden checkbox using Capybara

I've got a checkbox that I want to check. This button has a confirm alert associated and some other stuff.

在此输入图像描述

<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();
    }
  });

I cannot check this button with Capybara. I was trying with:

1- find(locator, visible: false).click

2- find(locator).trigger('click')

Where locator is the path to my input.

Additional

# Gemfile
gem 'capybara', '2.0.2'
gem 'capybara-webkit', '~> 1.1.0'

# Test file
it "..." , js: true do

Somebody can help me to check this checkbox please?

Thanks.

Capybara has an option (Capybara.ignore_hidden_elements) to configure the default query behavior of finding nodes within the DOM. It's default value is false. That means that your css or xpath queries will find all nodes in the document regardless of their visibility on the page. You can overwrite this behavior for an individual query by passing the :visible => true|false option.

Change the default behavior of capybara ie

Capybara.ignore_hidden_elements = true

You can also follow the link : http://makandracards.com/makandra/7617-change-how-capybara-sees-or-ignores-hidden-elements :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM