gpt4 book ai didi

python - Selenium Webdriver Python 如何从所有复选框中删除勾号(如果它们被勾选)

转载 作者:行者123 更新时间:2023-11-28 16:30:01 24 4
gpt4 key购买 nike

我在网页上有一个复选框列表。其中一些已打勾。我正在尝试取消勾选那些被打勾的。如果选中它们,我的代码似乎不会取消选中复选框。如果我注释掉 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 是一个返回 bool 值的方法,调用它:

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

关于python - Selenium Webdriver Python 如何从所有复选框中删除勾号(如果它们被勾选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com