jquery 可以在浏览器中点击元素,但不能在 ruby-watir 中点击

Element can be clicked by jquery on browser but not in ruby-watir

在浏览器上使用 jquery,我可以点击元素:

$("input[name=\"generalConditions\"]").click();

但是——使用 ruby-watir——我不能:

$browser.element(:css=> 'input[name="generalConditions"]').click

这里是 HTML:

</section>

<section id="condGenerales" class="generalConditions pageSectionName" data-pagesection="generalConditions">
<div class="conditions">
<p class="titulo2">Condiciones generales</p>
<fieldset class="condicionesGenerales">
<div class="checkboxB">
<input type="checkbox" name="generalConditions" id="GC">
<label for="GC">
* He revisado los trayectos, itinerario y destinos de la reserva, siendo estos correctos. He le&#237;do y acepto las 
<a href="https://politicaCobros.htm" target="_blank">pol&#237;tica de cobros</a>,                       
<a href="https://privacidad" target="_blank">pol&#237;tica privacidad</a>,                       
<a href="https://poli.htm" target="_blank">condiciones generales</a>                                        
y acepto el pago de <span class="price totalpricecheckout">297,37&nbsp;<small>&#8364;</small></span>
</label>
</div>
<div class="contErrorDatos mt-20" style="display:none">
Para finalizar la reserva, debes aceptar las condiciones generales y de cancelaci&#243;n de esta reserva
</div>
</fieldset>
</div>
</section>

元素存在但不存在。我怎样才能点击这个复选框?

问题是元素被隐藏了,所以 selenium 可见性检查不允许你点击这个元素,所以使用 Javascript 点击这里,它会起作用。

写这段代码

b.input(name: 'generalConditions').fire_event :click

或者

b.input(id: 'GC').fire_event :click

b.checkbox(name: 'generalConditions').fire_event :click