我正在尝试编写一个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()
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()