Селен сбой при запуске безголового хромедра на моем малиновом пи - PullRequest
0 голосов
/ 14 мая 2019

Я скачал chromedriver на свой Raspberry Pi (без графического интерфейса) отсюда: https://launchpad.net/ubuntu/trusty/armhf/chromium-chromedriver/65.0.3325.181-0ubuntu0.14.04.1

И затем я установил его, используя dpkg -i, и я могу проверить его установку в /usr/lib/chromium-browser/chromedriver'.

Когда я пытаюсь запустить свой скрипт, который использует селен:

options = Options()
options.add_argument(f'user-agent={USER_AGENT}')
options.add_argument('--window-size=1024,768')
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('disable-infobars')
options.add_argument("--disable-extensions")
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver', options=options)
# Fetch video url.
driver.get(url)

Вылетает со следующей ошибкой:

selenium.common.exceptions.WebDriverException: Message: unknown error: 
session deleted because of page crash
from tab crashed

Эта ошибка возникает на:

driver.get(url)

Как бы это исправить? Это как настроить селен в моем коде? Или как я его установил?

Редактировать: Возможно ли, что ошибка вызвана версией chromium-chromedriver, установленной с панели запуска, является версией 65, а моя установка chromium-broswer - версией 72?

Если так, как мне установить старую версию браузера chromium?

1 Ответ

0 голосов
/ 14 мая 2019

Я подозреваю, что это не имеет никакого отношения к работе в режиме без головы. Как вы "проверили его установку в '/ usr / lib / chromium-browser / chromedriver'"?

Вы говорите код:

driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')
driver.get(url)

работает без проблем? Я бы подумал, что потребуется полный путь:

driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver/chromedriver.exe')
driver.get(url)

Так как chromedriver.exe - это файл, а не папка (хотя лично у меня есть chromedriver.exe в том же каталоге, поэтому я опускаю этот аргумент ... возможно, я не понимаю его полностью). Если это работает, вы должны систематически добавлять опции 1 к 1 до тех пор, пока они не сломаются, чтобы вы точно знали, какая опция нарушает их.

...