Selenium (python) вылетает при отправке ключей с виртуальным дисплеем

Я запускаю некоторые вещи, которые требуют автоматизации браузера на экземпляре AWS. Я пытаюсь запустить Selenium с виртуальным дисплеем, но мой код вылетает всякий раз, когда я пытаюсь использовать Selenium для отправки ввода с клавиатуры на страницу. Я могу загружать исходный код и находить элементы на страницах, но не могу использовать метод send_keys. Ниже представлен MWE, воспроизводящий сбой:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(1920, 1080))
display.start()

driver = webdriver.Chrome()
driver.get("http://google.com")

search_field = driver.find_element_by_id("lst-ib")
search_field.send_keys("foo")

А вот трассировка стека:

Traceback (most recent call last):
  File "mwe.py", line 12, in <module>
    search_field.send_keys(u"foo")
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 479, in send_keys
    'value': keys_to_typing(value)})
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 628, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 314, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
  (Session info: chrome=67.0.3396.62)
  (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-116-generic x86_64)

Мой Google Fu до сих пор меня подводил, поэтому мы очень ценим любой вклад.

Обновите драйвер Chrome до версии 2.39. Ваша версия 2.27 очень старая и несовместима с версией Chrome.

demouser123 02.06.2018 10:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
153
0

Другие вопросы по теме