Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
3 / 3 / 0
Регистрация: 16.08.2013
Сообщений: 44
1

StaleElementReferenceException для присутствующего элемента

18.01.2021, 16:01. Показов 3503. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день. Хочу залогиниться через селениум. Открываю сайт, ввожу логин, пароль, кликаю кнопку. Проблема в том, что логин вводится нормально, а вот на поле пароль ошибка StaleElementReferenceException: Message: stale element reference: element is not attached to the page document ( для gecko: either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed).
Python
1
2
3
4
5
6
7
8
9
self.driver.get("https://www.site")
        loginform = self.driver.find_element_by_id('loginform')
        user_element = loginform.find_element_by_id("username")
        user_element.send_keys('user')
        time.sleep(5)
        password_element = loginform.find_element_by_id("password")
        password_element.click()
        print(loginform.get_attribute('innerHTML'))
        password_element.send_keys('password')
password_element.click() работает, кликает! print выдает
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<input type="hidden" name="ReturnUrl" value="/Member/Index">
<label for="username">
<input id="username" name="username" class="txtBoxUser" style="font-family: verdana,arial,helvetica,clean,sans-serif;" type="text" size="9" value="Username or Email...">
</label>
<label for="password">
<input type="password" name="password" id="password" value="Password..." class="txtBox">
</label>
<input type="submit" name="button-login" id="button-login" value="Login" class="button_style">
<div style="float:left; padding-right:5px; padding-top:2px; padding-left:5px;">
<div style="float:left;">
<input id="RememberMe" name="RememberMe" type="checkbox" value="true"><input name="RememberMe" type="hidden" value="false">
</div>
<div style="float:left; padding-top: 2px;">
<span for="RememberMe" style="color:White; font-weight:normal;">Save Customer ID</span>
</div>
</div>
<input type="hidden" name="ioBlackBox" id="ioBlackBox" value="0400bpNfiPCR+">
<input type="hidden" name="hpusername" id="hpusername">
элемент id="password" есть....
Это как так, почему click норм, а send_keys нельзя??
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2021, 16:01
Ответы с готовыми решениями:

Selenium StaleElementReferenceException
Всем привет! Подскажите как мне реализовать следующий обход ссылок: from selenium import...

Selenium.common.exceptions.StaleElementReferenceException
Писал на форумах селениума. Но там никто не смог помочь. Осталась надежда на вас. Пишу парсер на...

Подсчитать количество вхождений каждого элемента, присутствующего в двухмерном массиве
Если кто может то можно это в виде меню все сделать , спасибо Написать программу на языке...

Подсчитать количество вхождений каждого элемента, присутствующего в двухмерном массиве
Написать программу, которая подсчитывает количество вхождений каждого элемента, присутствующего в...

2
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
18.01.2021, 16:05 2
Лучший ответ Сообщение было отмечено sonea как решение

Решение

sonea, документацию решил не читать? пральна, на форум быстрее. При вводе на этой странице что-то меняется, возможно как защиту сделали. Короч нужно получать элемент перед действием непосредственно, а не через поиск в loginform
Если есть ид, то почему не искать прямо, типа
password_element = self.driver.find_element_by_id("password")
?
1
3 / 3 / 0
Регистрация: 16.08.2013
Сообщений: 44
18.01.2021, 16:30  [ТС] 3
Согласна, лох.
Через self.driver.find_element_by_id делала изначально, было то же самое. Побоялась что не туда попадаю и пошла через форму, там то уже точно не промахнусь. Плохое решение. В общем вот так работает
Python
1
2
3
4
password_element = self.driver.find_element_by_id("password")
        password_element.click()
        password_element = self.driver.find_element_by_id("password")
        password_element.send_keys('***')
Без предварительного click вываливает ту же ошибку, что нет его
Может кому пригодиться в жизни
0
18.01.2021, 16:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2021, 16:30
Помогаю со студенческими работами здесь

Selenium StaleElementReferenceException: stale element reference element is not attached to the page document
у меня есть код и когда я его запускаю по отдельности на разные кнопки то всё нормально тоесть вот...

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

Написать предикат insertBeforeLast для добавления элемента в позицию предпоследнего элемента
Написать предикат insertBeforeLast для добавления элемента в позицию предпоследнего элемента. Буду...

Для списка L и элемента a вычислить максимальную глубину вхождения элемента a в список L
Для списка L и элемента a вычислить максимальную глубину вхождения элемента a в список L.

css правило для 4го, 5го, 6го элемента, внутри другого элемента.
Здравствуйте. Прошу помочь мне в данном вопросе. Допустим есть код: &lt;div id=&quot;a&quot;&gt; &lt;div...

Выполните поиск элемента в массиве. Для поиска элемента используйте рекурсивную функцию
Выполните поиск элемента в массиве. Для поиска элемента используйте рекурсивную функцию. В случае,...

Метод для выбора элемента списка по номеру элемента
import java.io.*; import java.util.Date; import javax.swing.*; import java.awt.*; public class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru