可以在浏览器上通过jquery单击元素,但不能在ruby-watir中单击

时间:2017-05-09 10:25:18

标签: jquery css 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>
&#13;
&#13;
&#13;

元素存在但不存在。我该如何点击这个复选框?

1 个答案:

答案 0 :(得分:1)

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

编写此代码

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

或者

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

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