我想获取页面中的所有复选框并迭代它们以检查它们是否可点击(启用)。为此,我使用driver.find_elements_by_xpath(element_xpath)
,此方法返回所有复选框的列表,我可以为每个复选框调用click函数。问题是在我检查2个复选框后,其余的复选框变为禁用,我无法调用点击功能。我找不到任何方法来检查复选框是否仍然可点击;因为我的每个复选框都有一个WebElement,而不是其中的字符串,所以我无法使用element_to_be_clickable
或presence_of_element_located
。由于
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, element_xpath))
)
正在寻找元素作为字符串,eitehr是Id,CSS,XPath或......
我已阅读here,element.get_attribute('outerHTML')
我可以获取围绕我的元素的HTML标记但是我如何使用它来查看该元素是否可点击?
all_check_box = ".//*[@type='checkbox']"
clickable_elements = driver.find_elements_by_xpath(all_check_box)
for elem in clickable_elements:
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, elem))) #it's not working!!!
except Exception as e:
logging.error("couldn't Click")
由于某些原因,当我使用is_enabled()时,它总是为True。
all_check_box = ".//*[@type='checkbox']"
clickable_elements = driver.find_elements_by_xpath(all_check_box)
for elem in clickable_elements:
print elem.is_enabled() # It's always True
elem.click()