Как обойти исключение ссылки на устаревший элемент при использовании драйвера ChromePython

Программы на Python
Ответить
Anonymous
 Как обойти исключение ссылки на устаревший элемент при использовании драйвера Chrome

Сообщение Anonymous »

Я пытаюсь автоматизировать вход на веб-сайт, который использую. У меня есть сценарий Python, который успешно находит и обновляет имя пользователя и пароль, но когда я пытаюсь нажать «Войти», я получаю исключение устаревшего элемента.
Код:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://waveleisure.gs-signature.cloud/ ... Login.aspx")
driver.implicitly_wait(10)
elements = driver.find_elements(By.TAG_NAME, "input")
print(len(elements), " elements found")
for el in elements:
if el.accessible_name == "Email Address":
print("got email address")
el.send_keys("****@gmail.com")
elif el.accessible_name == "Password":
print("got password")
el.send_keys("****")
driver.implicitly_wait(10)
elements = driver.find_elements(By.TAG_NAME, "input")
for el in elements:
if el.accessible_name == "Login":
print("got login")
el.click()

Выполнение приведенного выше сценария дает:
DevTools listening on ws://127.0.0.1:52650/devtools/browser/09db5c0e-52e4-45a4-8499-f5703dde1f6e
10 elements found
got email address
got password
got login
Traceback (most recent call last):
File "C:\Workspace\Booking\WavesBooking.py", line 28, in
if el.accessible_name == "Login":
^^^^^^^^^^^^^^^^^^
File "C:\Users\pete_\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webelement.py", line 303, in accessible_name
return self._execute(Command.GET_ELEMENT_ARIA_LABEL)["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\pete_\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webelement.py", line 395, in _execute
return self._parent.execute(command, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\pete_\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 354, in execute
self.error_handler.check_response(response)
File "C:\Users\pete_\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: stale element not found
(Session info: chrome=130.0.6723.92); For documentation on this error, please visit: https://www.selenium.dev/documentation/ ... -exception


Подробнее здесь: https://stackoverflow.com/questions/791 ... ome-driver
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»