2017-01-25 12 views
1

入力ドロップダウンメニューから(SELECT ALL)チェックボックスをチェックしたいと思います。どうすればいい?以下は、ドロップダウンメニューのスクリーンショットです。ドロップダウンアイコンの横にあるフィールドのIDはrvrMain_ctl00_ctl09_ctl00です。これまでのところ、ここでPython Seleniumチェックチェックボックスですべてを選択入力

enter image description here

私のコードですが、私には良い結果は得られませんでした。

checkboxes = browser.find_elements_by_xpath("//input[@id='rvrMain_ctl00_ctl09_ctl00']") 
for checkbox in checkboxes: 
    if not checkbox.is_selected(): 
     checkbox.click() 

もう1つ試してみましたが、まだ良い結果はありません。

browser.find_element_by_xpath("//input[@id='rvrMain_ctl00_ctl09_ctl00']").click() 

ご協力いただければ幸いです。おかげに関して、

アーノルド

EDIT

私はフィールドの要素を検査しようとすると、ここでHMTLコードです:

<table cellspacing="0" cellpadding="0"> 
    <tbody> 
     <tr> 
     <td nowrap="nowrap"><span style="font-family:Verdana;font-size:8pt;"><input id="rvrMain_ctl00_ctl09_ctl03_ctl00" name="rvrMain$ctl00$ctl09$ctl03$ctl00" onclick="MVClassrvrMain_ctl00_ctl09.SetAutoPostBackOnHide();MultiValidValuesSelectAll(this, 'rvrMain_ctl00_ctl09_ctl03');" type="checkbox"><label for="rvrMain_ctl00_ctl09_ctl03_ctl00">(Select All)</label></span></td> 
     </tr> 
     <tr> 
     <td nowrap="nowrap"><span style="font-family:Verdana;font-size:8pt;"><input id="rvrMain_ctl00_ctl09_ctl03_ctl01" name="rvrMain$ctl00$ctl09$ctl03$ctl01" onclick="MVClassrvrMain_ctl00_ctl09.SetAutoPostBackOnHide();OnClickMultiValidValue(this, document.getElementById('rvrMain_ctl00_ctl09_ctl03_ctl00'));" type="checkbox"><label for="rvrMain_ctl00_ctl09_ctl03_ctl01">148950&nbsp;-&nbsp;PT.&nbsp;CATUR&nbsp;SENTOSA&nbsp;ADIPRANA&nbsp;-&nbsp;KOTABUMI</label></span></td> 
     </tr> 
     <tr> 
     <td nowrap="nowrap"><span style="font-family:Verdana;font-size:8pt;"><input id="rvrMain_ctl00_ctl09_ctl03_ctl02" name="rvrMain$ctl00$ctl09$ctl03$ctl02" onclick="MVClassrvrMain_ctl00_ctl09.SetAutoPostBackOnHide();OnClickMultiValidValue(this, document.getElementById('rvrMain_ctl00_ctl09_ctl03_ctl00'));" type="checkbox"><label for="rvrMain_ctl00_ctl09_ctl03_ctl02">148961&nbsp;-&nbsp;PT.&nbsp;CATUR&nbsp;SENTOSA&nbsp;ADIPRANA&nbsp;-&nbsp;BANDAR&nbsp;LAMPUNG</label></span></td> 
     </tr> 
     --- the list keeps go on and on--- 
     <tr> 
     <td nowrap="nowrap"><span style="font-family:Verdana;font-size:8pt;"><input id="rvrMain_ctl00_ctl09_ctl03_ctl203" name="rvrMain$ctl00$ctl09$ctl03$ctl203" onclick="MVClassrvrMain_ctl00_ctl09.SetAutoPostBackOnHide();OnClickMultiValidValue(this, document.getElementById('rvrMain_ctl00_ctl09_ctl03_ctl00'));" type="checkbox"><label for="rvrMain_ctl00_ctl09_ctl03_ctl203">320864&nbsp;-&nbsp;PT.&nbsp;LIQUID&nbsp;KENCANA&nbsp;ABADI&nbsp;-&nbsp;NIAS</label></span></td> 
     </tr> 
    </tbody> 
</table> 

が、私はチェックボックスを選択しますラベルは(Select All)です。

Dillanmによって示唆されるようにEDIT

、私は私のコードを改訂し、それが働きました。基本的には、ドロップダウンメニューのアイコンをクリックしてから、チェックボックスの1つをクリックする必要があります。だからここのコードです:あなたのケースでは

browser.find_element_by_id('rvrMain_ctl00_ctl09_ctl01').click() # this one click on the dropdown menu icon 
browser.find_element_by_id('rvrMain_ctl00_ctl09_ctl03_ctl00').click() # this one click on the checkbox, either uncheck or check 
+0

ポップアップの 'HTML'を共有することはできますか? – Andersson

+0

チェックボックスに移動する前に、ドロップダウンの下矢印ボタンをクリックしてください。 – NarendraR

+0

WebDriver SupportパッケージからSelectクラスを試すことができます。詳細については、[こちら](http://stackoverflow.com/a/28613320/3110529)の回答を参照してください(ただし、チェックボックスで動作するかどうかはわかりません) – Dillanm

答えて

1

あなただけの下矢印をクリックしますので、あなたの要素のdown arrow iconをクリックするステップが欠落しているが、ドロップダウンメニュー項目が表示さ取得し、あなたのチェックオプションを実行する必要があります。

ように -

browser.find_element_by_xpath(down_arrow_icon_xpath).click() 
checkbox = browser.find_element_by_id("rvrMain_ctl00_ctl09_ctl03_ctl00") 
    if not checkbox.is_selected(): 
     checkbox.click() 
+0

リストをクリックしようとすると、最初の行でエラーが発生します( 'find_elements'ではなく' find_element'を使います)。また、2番目の行は、 'input'フィールドに' id = 'rvrMain_ctl00_ctl09_ctl00''を指定した 'HTML'コードが含まれているので、' 0'要素を返します(しかし、これは誤解を招く可能性があります)。ターゲットのチェックボックスが当初知られているので、すべてのオプションをループする必要はありません。ちょうど ''(Select All) "'を使って正確に確認することができます – Andersson

+0

@Andersson、あなたは正しい、問題は彼がクリックするのを忘れていた下矢印アイコン。だから私はそれを言及し、急いでコードを貼り付けた。思い出してくれてありがとう:) – NarendraR

関連する問題