2017-08-26 10 views
0

ルビープログラミングでセレンでこのチェックボックスをオンにしたいと思います。 しかし、私はチェックをしないでください。どうすればいいですか?このチェックボックスをルビープログラミングでセレンでチェックしてください

ここでは、以下のコードを作成します。

# code 
element = @driver.find_element(:xpath, '//* 
[@id="lookCheck10"]/div[1]/div[2]/div[1]/label') 
@driver.execute_script("arguments[0].click();", element); 



# html 
<div class="e-select-box p-look-bike__type-box"> 
    <div class="e-title"> 
     <input type="hidden" name="data[Reserve][types][10]" 
    id="lookCheck10_" value="0"/><input type="checkbox" 
name="data[Reserve][types][10]" id="lookCheck10" value="1" 
checked="checked"/>       <label 
for="lookCheck10">BIKE</label> 
    </div> 
    <div class="e-media"> 
     <div class="e-media__body p-look-bike__type-detail"> 
      <p>this is good for family</p> 
     </div> 
     <div class="e-media__image p-look-bike__type-image"> 
      <img src="/images/reserve/img_biketype_10.jpg" alt="bike"> 
     </div> 
    </div> 
</div> 
+1

エラーは何ですか? –

+0

私には間違いがありますか? –

+0

チェックボックスにチェックを入れることができますか?私はこのコードでチェックすることができません.. – yoyo

答えて

0

「BIKE」というラベルのチェックボックスを選択するとします。そのためには、以下のコードを使用してください。

element = @driver.find_element(:xpath, '//*[@id="lookCheck10"]') 
@driver.execute_script("arguments[0].click();", element); 
+0

なぜセレンのクリックを提案するのではなく、Javascriptのクリックを提案していますか? – RAJ

+0

Seleniumのクリックがうまくいかなかったため、ユーザーがjavascriptのクリックを試みたのはそのためです。 JavaScriptのクリックで何が問題になっていますか? – Kapil

+0

さようなら! Javascriptのクリックが待機しないクリックするとページが読み込まれます。しかし、セレンクリックを使用すると、対応するドライバをクリックすることに依存します。クリックするとページロードが発生するため、FirefoxドライバとChromeドライバはページのロードを待機します。最近追加されたfirefox用のGeckodriverは待たずに、従来のfirefoxドライバがやります。 – RAJ

関連する問題