I'm running some stuff that necessitates browser automation on an AWS instance. I'm trying to run Selenium with a virtual display, but my code crashes whenever I try to use Selenium to send keyboard input to a page. I can download source code and locate elements on pages, but not use the send_keys method. Below is an MWE reproducing the crash:
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")
And here's a stacktrace:
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)
My Google Fu has failed me thus far, so any input is highly appreciated.