muhyrla
muhyrla

Reputation: 15

Why doesn’t Selenium find an element with this XPath expression?

I’m trying to find an element with this XPath expression:

/html/body/div/div[1]/div/div/div[2]/div/div/div/div[2]/form/div[1]/div[3]/div/input

But Selenium can’t find one.

The page I’m trying to access - https://account.aax.com/en-US/login/

I already tried to follow this path by myself, and it’s fine.

Upvotes: 0

Views: 66

Answers (1)

Prophet
Prophet

Reputation: 33351

  1. You are missing a delay. WebDriverWait expected_conditions should be used for that.
  2. You have to improve your locators.

The following code works:

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument("start-maximized")

webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(options=options, service=webdriver_service)
wait = WebDriverWait(driver, 20)
actions = ActionChains(driver)

url = "https://account.aax.com/en-US/login/"

driver.get(url)

wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@class='MuiInputBase-input MuiOutlinedInput-input']"))).click()

Upvotes: 1

Related Questions