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 来完成。
我想在下面给出的代码中使用一个 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 来完成。