繁体   English   中英

Python Selenium 检查.click() 是否可点击

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM