如何在Python中使用Selenium检查网页上的所有复选框(使用循环)

问题描述 投票:0回答:1

我正在尝试编写一个Python程序来检查给定网页上的所有复选框。目前,我只能选择一个复选框,并且不确定为什么我无法迭代此示例页面上包含复选框的元素循环。到目前为止,这是我的代码:

from selenium import webdriver
driver = webdriver.Firefox()
driver.maximize_window()
driver.get(
    "https://www.sugarcrm.com/request-demo/")

elements = []
elements = driver.find_elements_by_xpath("//*[@class='form-check-input']")
elemlength = len(elements)

for x in range(1, elemlength):
    if driver.find_element_by_xpath("//input[@type='checkbox']").is_selected():
        print("Already Selected")
    else:
        driver.find_element_by_xpath("//input[@type='checkbox']").click()
python css selenium
1个回答
1
投票

driver.find_element_by_xpath("//input[@type='checkbox']")
将返回每次找到的第一个复选框,因此它始终是相同的。

您可以使用

driver.find_elements_by_xpath("//*[@class='form-check-input']")
返回的元素列表来代替。

elements = driver.find_elements_by_xpath("//*[@class='form-check-input']")
for element in elements:
    if element.is_selected():
        print("Already Selected")
    else:
        element.click()
© www.soinside.com 2019 - 2024. All rights reserved.