No element matching the locator strategy could be found in the current page DOM. The element may not exist, may not have loaded yet, or the locator may be incorrect.
// Python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, '#my-element'))
)Explicit waits poll the DOM until the element appears or the timeout expires. Much more reliable than Thread.sleep().
// Python
driver.switch_to.frame('iframe-id')
element = driver.find_element(By.ID, 'button')
element.click()
driver.switch_to.default_content()Elements inside iframes are not accessible from the main document. Switch to the iframe context first.
ObserveOne's self-healing locators automatically find alternative selectors when elements can't be found.
Start Monitoring FreeThe element previously located is no longer attached to the DOM. The page was refreshed, navigated, or the element was re-rendered by JavaScript.
The element exists in the DOM but cannot be interacted with. It may be hidden, disabled, or covered by another element.
The click command could not be completed because another element would receive the click at the target coordinates. A different element is covering the target.
WebDriver could not create a new browser session. Usually caused by a version mismatch between the browser and the driver.
The WebDriver binary (chromedriver, geckodriver, etc.) cannot be found in the system PATH. Selenium needs the driver binary to communicate with the browser.