Я пытаюсь использовать chromedriver с Ubuntu (экземпляр AWS). Я заставил chromedriver работать без проблем в локальном экземпляре, но у меня было много проблем в удаленном экземпляре.
Я использую следующий код:
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--remote-debugging-port=9222")
driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=options)
Тем не менее, я получаю эту ошибку:
Traceback (most recent call last):
File "test.py", line 39, in <module>
driver = webdriver.Chrome()
File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
self.service.start()
File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
stdin=PIPE)
File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: 'chromedriver'
Я полагаю, что я использую самую последнюю версию Selenium, Chrome и chromedriver.
Версия Chrome: Version 78.0.3904.70 (Official Build) (64-bit)
Селен:
ubuntu@ip-172-31-31-200:/usr/bin$ pip3 show selenium
Name: selenium
Version: 3.141.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Location: /home/ubuntu/.local/lib/python3.6/site-packages
Requires: urllib3
И, наконец, для chromedriver я почти уверен, что скачал самую последнюю версию здесь:https://chromedriver.storage.googleapis.com/index.html?path=78.0.3904.70/. Это версия mac_64 (я использую Ubuntu на Mac). Затем я поместил chromedriver в /usr/bin
, так как я читал, что это обычная практика.
Понятия не имею, почему это не работает. Несколько вариантов, которые я могу придумать:
1) какая-то проблема с доступом? Я новичок с командной строкой и Ubuntu - я должен запускать это как "пользователь root"?
2) несоответствие между версиями chromedriver и chrome? Есть ли способ сказать, какая версия chromedriver у меня есть наверняка?
3) Я вижу, что хромедрайвер и селен находятся в разных местах. Селен в: Location: /home/ubuntu/.local/lib/python3.6/site-packages
, и я переместил хромедрайвер в: /usr/bin
. Может ли это вызывать проблемы?
Любая помощь оценена, когда я в тупике.