2015-10-05 72 views
3

我有一個網頁上的複選框的列表。其中一些被打勾。我試圖解決那些被勾選的問題。我的代碼似乎沒有勾選複選框,如果他們被選中。 如果我註釋掉IF語句,它會勾選所有的複選框。 問題在於我的IF語句。它不檢查複選框是否勾選。Selenium Webdriver Python如何刪除勾選所有複選框,如果他們被勾選

我的代碼片斷是:

# uncheck all of the checkboxes if they are ticked 
    def remove_ticks_from_all_checkboxes(self): 
     checkboxes = self.driver.find_elements(By.XPATH, '//div[@id="match_configuration_add_match_tab_data_objects_fp_flags"]//input') 
     for checkbox in checkboxes: 
      if checkbox.is_selected == "True": # If checkbox is ticked 
       checkbox.click() # to untick it 

的HTML是:

<div id="match_configuration_add_match_tab_data_objects_fp_flags"> 
    <div class="gwt-Label matchruleheader">Gender and title flags</div> 
     <span class="gwt-CheckBox" style="display: block;"> 
      <input id="gwt-uid-239" type="checkbox" value="on" tabindex="0"/> 
      <label for="gwt-uid-239">Gender must be present in both names</label> 
     </span> 
     <span class="gwt-CheckBox" style="display: block;"> 
      <input id="gwt-uid-240" type="checkbox" value="on" tabindex="0"/> 
      <label for="gwt-uid-240">Gender must be consistent in both names</label> 
     </span> 
     <span class="gwt-CheckBox" style="display: block;"> 
      <input id="gwt-uid-241" type="checkbox" value="on" tabindex="0"/> 
      <label for="gwt-uid-241">Allow gender mismatch</label> 
     </span> 
     <span class="gwt-CheckBox" style="display: block;"> 
     --- some more checkboxes 
     <span class="gwt-CheckBox" style="display: block;"> 
     --- some more checkboxes 
     <span class="gwt-CheckBox" style="display: block;"> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <div class="gwt-Label matchruleheader">Name flags</div> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <span class="gwt-CheckBox" style="display: block;"> 
     <div class="gwt-Label matchruleheader">Other flags</div> 
     <span class="gwt-CheckBox" style="display: block;"> 
</div>    

我如何檢查複選框中打勾我的for循環? 如果勾選了複選框,那麼我想單擊它,以便它剔除它。

我的XPATH是正確的,因爲如果我刪除IF語句。 for循環將遍歷所有複選框並勾選它。

感謝,

里亞茲

回答

3

is_selected是一種方法返回一個布爾值,稱之爲:

for checkbox in checkboxes: 
    if checkbox.is_selected(): # If checkbox is ticked 
     checkbox.click() # to untick it 
+0

啊,我忘了()我試圖調用該方法。它仍然沒有工作。開發人員建議我嘗試如果checkbox.is_selected():刪除== True –

+0

這工作如果checkbox.is_selected(): –

+0

@RiazLadhani是的,有一個快速編輯答案。謝謝。 – alecxe