I would like to catch a error every time I click an icon or an element that is not active.
            Asked
            
        
        
            Active
            
        
            Viewed 44 times
        
    -4
            
            
        3 Answers
0
            
            
        try:
    element.click()
except Exception as e:
        print(e)
you can print the exception thrown like this
 
    
    
        PDHide
        
- 18,113
- 2
- 31
- 46
-1
            
            
        Selenium won't be able to differentiate between active and inactive state of an element. But Selenium can distinguish the different states of a WebElement interms of:
This usecase
In short click() can fail majorly because of either:
Solution
You can catch NoSuchElementException using the following code block:
try:
    driver.find_element(By.CSS_SELECTOR, "a.class#id[attribute='value']").click()
except NoSuchElementException:
    print("No such element")
    
You can avoid ElementClickInterceptedException inducing WebDriverWait for the element_to_be_clickable() as follows:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_css"))).click()
 
    
    
        undetected Selenium
        
- 183,867
- 41
- 278
- 352
 
    