微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium Webdriver Python如何在所有复选框中打勾

我在网页上有复选框列表.其中一些被打勾.我正在尝试取消勾选的项目.如果选中我的代码,则它们似乎不会取消选中该复选框.
如果我注释掉IF语句,它将选中所有复选框.
问题出在我的IF语句中.它不会检查复选框是否被勾选.

我的代码段是:

    # 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循环将遍历所有复选框并将其选中.

谢谢,

里亚兹

解决方法:

is_selected一个返回布尔值的方法,将其调用

for checkBox in checkBoxes:
    if checkBox.is_selected(): # If checkBox is ticked
        checkBox.click() # to untick it

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐