Я пытаюсь использовать Selenium на записной книжке jupyter с geckodriver.
Хотя в режиме без головы все работает нормально, мне нужно видеть окно браузера, так как я учусь ...
Я проверил, что и браузер, и драйвер совместимы, драйвер, добавленный в переменную PATH, и еще несколько советов, которые я видел вокруг ...
Это отлично работает:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()
Но при удалении безголовой опции происходит сбой:
WebDriverException: Сообщение: недопустимый аргумент: невозможно убить завершенный процесс
Единственная подсказка Я могу найти его в geckodriver.log , где я могу прочитать:
1596560987355 mozrunner :: runner INFO Выполняемая команда: "/ bin / firefox" "-marionette" "-foreground" "-no-remote" "-profile" "/ tmp / rust_mozprofilejjh45q" Ошибка: не указана переменная среды DISPLAY
Я проверил, существует ли эта переменная, и это похоже на ДИСПЛЕЙ: 0 . Я также попытался изменить значение, чтобы установить его на свой ip и порт ....
Это меня немного бесит, так что если кто-то может протянуть мне руку, это будет здорово !! Заранее спасибо !!
-> Обновление: как предложил @Wunderbread, SeleniumBase работает без проблем.
-> Обновление: я работал с Selenium на Jupiter Hub. Ни один из них не работает с деревом jupyter, PyCharm или VS C, но ... отлично работает из сценария на терминале ... в жизни есть загадки .... xDD