Невозможно найти элемент с помощью xPath

Я буквально схожу с ума, чтобы найти элемент на определенной веб-странице. Это кнопка "Ввод", но я не могу ее найти.

СООБЩЕНИЕ ОБ ОШИБКЕ:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"input"}

(Информация о сеансе: chrome=86.0.4240.111)

Я поделюсь с вами возможными селекторами ChroPath Extension:

ChroPathSelectors

ChroPathSelector (1

HTML ПРОВЕРИТЬ КОД КНОПКА "ВВОД":

<input type="button" value="Entra" onclick="parent.location.href='http://maremt.risorse.enel'">

1° ПОПЫТКА - КОД PYTHON С REL XPATH:

elem = browser.find_element_by_xpath('//body[1]/div[1]/div[1]/div[2]/div[1]/table[1]/tbody[1]/tr[1]/td[2]/table[1]/tbody[1]/tr[3]/td[1]/input[1]')

2° ПОПЫТКА - КОД PYTHON С ABS XPATH:

elem = browser.find_element_by_xpath('/html[1]/body[1]/div[1]/div[1]/div[2]/div[1]/table[1]/tbody[1]/tr[1]/td[2]/table[1]/tbody[1]/tr[3]/td[1]/input[1]')

Я проверил, были ли фреймы, но не могу их найти. Пожалуйста, помогите мне.

3 ответа

Я согласен с @josifoski. Лучше использовать пользовательский xpath, чем автоматически сгенерированный браузером. Итак, в вашем случае попробуйте использовать следующий xpath:xpath = '//input[@type="button"][@value="Entra"]'

Так будет легче понять и поддержать.

Я понял.

Я был неправ, когда сказал вам, что в исходном коде нет iframe.

Их 2!

Итак, это правильный код для нажатия кнопки "Ввод":

browser.switch_to.frame(0)
browser.switch_to.frame(1)
elem = browser.find_element_by_css_selector('td:nth-child(2) input')
elem.click()

Чтобы понять, я записал свои шаги с помощью Selenium Ide для браузера Chrome, затем экспортировал исходный код python и увидел 2 функции switch_to.frame; потом я сделал 2 плюс 2...

Как вы можете видеть, в конце я использовал аргумент css_selector на основе записанного исходного кода, который я экспортировал.

Надеюсь, это понятно и полезно для других.

Большое спасибо за вашу помощь и извините за неполную информацию.

Вы можете попробовать это

xpath = '//input[@value="Entra"]'
Другие вопросы по тегам