[英]Python Selenium Check if .click() was clickable or not
我想使用 if function 来告诉我在下面给出的代码中是否单击了按钮,如果是,那么“a”应该是 output,如果没有,那么“b”。
element = driver.find_element(By.XPATH, '//*[contains(concat( " ", @class, " " ), concat( " ", "css-xf3ahq", " " ))][text()="Button"]')
element.click()
if element == True:
print("a")
else:
print("b")
到目前为止,尽管按钮是可点击的,但 b 一直被写入
Selenium 具有: element_to_be_clickable() 这可能是您尝试做的更好的解决方案。 IE
from selenium.webdriver.support import expected_conditions as EC
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH, '//*[contains(concat( " ", @class, " " ), concat( " ", "css-xf3ahq", " " ))][text()="Button"]'))
print('a')
except selenium.common.exceptions.TimeoutException:
print('b')
你可以使用 element_to_be_clicked 条件
像这样:
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "myDynamicElement"))
)
try:
element = driver.find_element(By.XPATH, '//*[contains(concat( " ", @class, " " ), concat( " ", "css-xf3ahq", " " ))][text()="Button"]')
element.click()
print('Clickable')
except:
print('Not clickable')
只需尝试单击它,否则打印错误,如果不是。 如果需要,您可以使用 webdriver 检查是否存在并使用多个异常处理不同的错误。 不确定你是否可以在这里使用 if 来完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.