2017-05-09 20 views
2

上的瀏覽器使用jQuery,我可以單擊元素:元素可以通過在瀏覽器的jQuery被點擊,但不是在紅寶石的Watir

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

但是 - 用紅寶石的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>

元素存在但不存在。我怎樣才能點擊這個複選框?

+1

你能創建一個示例HTML頁面,與相關的CSS,再現了問題?如果沒有確切的情況,很難確定Watir爲什麼認爲該元素不存在。然而,這些日子最常見的原因是'input'被隱藏,並且顯示其他一些樣式的複選框圖像。在這些情況下,單擊'label'元素是必需的 - 即嘗試'$ browser.label(用於:'GC')。點擊' –

+0

@JustinKo這是非常有效的信息,是的,單擊該標籤正在工作。 – RAJ

回答

1

問題是元素是隱藏的,所以硒可見性檢查不會讓你點擊元素,所以使用Javascript點擊這裏,它會工作。

編寫代碼

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

或者

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

或者

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

謝謝!它像一個魅力工作,我嘗試了幾種解決方案,這是唯一一個工作,tahnks – Boikot

+0

@ user2295727你能接受我的答案?您需要點擊左側的箭頭,點擊該箭頭後它會變綠。 – RAJ