Я написал быструю программу, которая просто открывает и закрывает веб-сайт с помощью Firefox через определенные промежутки времени. Он отлично работает на моей Intel Mac OS Ventura. Я намеревался сохранить его работу на Raspberry Pi, но не могу найти комбинацию версий Selenium, geckodriver или chromedriver, а также Firefox или Chromium, которая будет работать на нем.
На Mac есть Selenium 4.11.2, geckodriver v0.33.0 и Firefox 115.0.3 работают. На Raspberry Pi установлена Ubuntu 22.04.3 LTS. Здесь, https://github.com/SeleniumHQ/selenium/issues/11599, я узнал, что Selenium Manager не работает на linux-arm64, а Raspberry Pi использует linux-arm64. Я получал ошибки, даже когда пытался указать путь к драйверу, при этом Selenium регистрировал, что не может найти драйвер, даже если он также находился в PATH. Похоже, в разговоре выше разработчики говорят, что встроенный менеджер драйверов Selenium Manager вызывает подобные ошибки. Selenium Manager был представлен в Selenium 4.6, поэтому я вернулся к Selenium 4.5, изменил свой код для этой версии, попытался запустить его и получил различные ошибки, которые, по-видимому, были связаны с проблемами несовместимости между драйвером и версией Firefox. Я пробовал разные их комбинации, но безуспешно. Тогда я решил вместо этого попробовать Chrome. Google не предоставляет сборку chromedriver для linux-arm64, поэтому я попробовал использовать разные версии, найденные здесь, https://github.com/electron/electron/releases, а также попытался откатить Chromium. Мне удалось хотя бы запустить с помощью программы браузер Chromium, что добилось большего успеха, чем с Firefox, но мне не удалось заставить его работать полностью. На протяжении всего процесса я читал много ответов на проблемы с Selenium в Stack Overflow, но ничего не помогло.
Вот код, который отлично работает на Mac с приведенной выше конфигурацией:
import datetime, logging, time
from selenium import webdriver
logger = logging.getLogger('selenium')
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler("handler.log")
logger.addHandler(handler)
logging.getLogger('selenium.webdriver.remote').setLevel(logging.DEBUG)
logging.getLogger('selenium.webdriver.common').setLevel(logging.DEBUG)
logging.basicConfig(filename="program.log", level=logging.INFO)
timeStarted = datetime.datetime.now()
logging.info(
timeStarted.strftime("%m/%d/%Y, %H:%M:%S")
+ " started on https://google.com"
)
# Program starts here
while True:
timeOfRequest = datetime.datetime.now()
try:
browser = webdriver.Firefox()
browser.get("https://google.com")
logging.info(
timeOfRequest.strftime("%m/%d/%Y, %H:%M:%S")
+ " Success"
)
except:
logging.exception(
timeOfRequest.strftime("%m/%d/%Y, %H:%M:%S") + " Something went wrong"
)
time.sleep(810)
browser.quit()
time.sleep(30)
Подробнее здесь: https://stackoverflow.com/questions/768 ... inux-arm64
Есть ли известная рабочая конфигурация для использования Selenium на linux-arm64? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли известная рабочая конфигурация для использования Selenium на Linux-Arm64?
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Расширение 100vh/svh в мобильном Chromium (НЕ печально известная проблема с адресной строкой)
Anonymous » » в форуме CSS - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-