如何知道通过Selenium python发送的单击是否不起作用



我想捕获一个错误,每次我点击一个图标或一个不活动的元素。

try:
element.click()
except:
print("error")
try:
element.click()
except Exception as e:
print(e)

你可以像这样打印抛出的异常

Selenium将无法区分活动元素的状态。但是Selenium可以区分WebElement的不同状态:

  • 可见
  • interactable

这usecase

简而言之click()可以失败主要是因为:

  • NoSuchElementException
  • ElementClickInterceptedException

解决方案可以使用下面的代码块捕获NoSuchElementException:

try:
driver.find_element(By.CSS_SELECTOR, "a.class#id[attribute='value']").click()
except NoSuchElementException:
print("No such element")

避免ElementClickInterceptedException触发WebDriverWait forelement_to_be_clickable()的方法如下:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_css"))).click()

最新更新