我想捕获一个错误,每次我点击一个图标或一个不活动的元素。
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()