Selenium + Firefox Dev-Edition: send_keys выдает исключение [объект не определен]

Попытка ввести имя пользователя при входе в систему с использованием метода send_keys(). Я предполагаю, что он может найти элемент ввода, поскольку когда я бегу до send_keys, он работает. При отправке строкового значения в send_keys выдается ошибка.

selenium.common.exceptions.WebDriverException: Сообщение: Ожидается [объект не определен] undefined как строка

Что мне не хватает?

Python: 3.5
Selenium 3.3.1
Firefox Developer Edition или Nightly (текущая версия> 52)
Мой фрагмент кода:

login_url = "https://korunet.co.nz/"
driver = webdriver.Firefox()
driver.get(login_url)
WebDriverWait(driver, 30).until(ec.visibility_of_element_located((By.CSS_SELECTOR, '#IDToken1')))

elem = driver.find_element_by_css_selector('#IDToken1')
elem.click()
elem.clear()
elem.send_keys("10101")

Отслеживание (последний вызов последний):

Файл "D: /PycharmProjects/JCBbidEntry/tests/loop2.py", строка 29, в elem.send_keys ("10101")
Файл "C: \ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site- packages \ selenium \ webdriver \ remote \ webelement.py ", строка 347, в send_keys self._execute (Command.SEND_KEYS_TO_ELEMENT, {'value': keys_to_typing (value)})
Файл" C: \ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webelement.py ", строка 491, в _execute return self._parent.execute (команда, параметры)
Файл" C: \ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 238, при выполнении self.error_handler.check_response (ответ)
Файл" C: \ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 193, в check_response
поднять класс исключения (сообщение, экран, трассировка стека)


person user1751844    schedule 03.04.2017    source источник
comment
Не могли бы вы поделиться URL-адресом или HTML-кодом   -  person Krishna Barri    schedule 03.04.2017
comment
Итак, я использовал версию для разработчиков Firefox (которая была на моем пути к Windows). Когда я использую стабильную версию и явно указываю двоичный файл через binary = FirefoxBinary (r'C: \ Program Files \ Mozilla Firefox \ firefox.exe), он работает нормально.   -  person user1751844    schedule 07.04.2017
comment
Похоже, это ошибка бета-версии FF 53.   -  person Mikko Ohtamaa    schedule 12.04.2017
comment
Повышено - github.com/webcompat/web-bugs/issues/5601 ( Я бы поставил это как комментарий, но репутации 50 не имею :))   -  person user1571417    schedule 12.04.2017


Ответы (6)


Кажется, решено, по крайней мере, для меня с последней версией geckodriver 0.16: https://github.com/mozilla/geckodriver/releases/tag/v0.16.0

Обратите внимание, что для версии 0.16 требуется селен 3.4.

-Эринн

person Erinn Looney-Triggs    schedule 23.04.2017
comment
Я также решил это, используя версию 0.16 geckodriver и обновив селен. Спасибо! - person Toni Piza; 25.04.2017

То же самое здесь ... Кажется, проблема с FIREFOX ... он работает должным образом с CHROME ;-(

person manatlan    schedule 05.04.2017
comment
Это только в нестабильных версиях firefox, релизная версия и более старые версии работают нормально. Я не знаю, куда записать эту ошибку. - person Ammar; 07.04.2017
comment
спасибо @najjarammar - после использования обычного firefox все наладилось - person wasabigeek; 19.04.2017

У меня также такая же проблема в моем случае, мой geckodriver - 64-битный, но firefox - 32-битный, он выдает ошибку

person user7853955    schedule 12.04.2017
comment
Это не ответ, вы можете оставить комментарий или проголосовать за этот вопрос - person Huy Nguyen; 12.04.2017
comment
для меня это был полезный ответ. YMMV. - person jcomeau_ictx; 09.05.2020

Было обновление Firefox, и то же самое случилось со мной. Переустановил 64-разрядную версию Geckodriver (https://github.com/mozilla/geckodriver/releases) и у меня это сработало.

person MartinWeaver    schedule 24.04.2017

Обновление до geckodriver 0.17.0 устранило проблему для меня
Firefox 53.0.3
Selenium 3.4.3
Python 3.6

binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary) 
driver.get(url)

emailInput = driver.find_element_by_id("login-username")
emailInput.send_keys("username")
person Viragos    schedule 09.06.2017

Решение, которое сработало для меня, - установить атрибут value вместо использования send_keys.

driver.execute_script("document.getElementById('login-username').setAttribute('value', 'username')")
person alexxei    schedule 18.05.2018