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

Python Selenium Check if .click() was clickable or not

我想在下面给出的代码中使用一个 if 函数来告诉我是否单击了一个按钮,如果是,则应输出“a”,如果没有,则应输出“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() 这可能是您尝试做的事情的更好解决方案。即

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')

尝试点击它,否则打​​印错误。如果需要,您可以使用网络驱动程序检查是否存在,并使用多个异常处理不同的错误。不确定您是否可以在此处使用 if 来完成。