Я создал утилиту с использованием драйверов watir / mechanize и chrome, она отлично работает в разработке.Он не работал в производственной среде, сбой хром-драйвера, поэтому мне пришлось добавить эти строки в начале моего скребка (нашел их в другой теме по stackoverflow)
args = %w[--disable-infobars --disable-dev-shm-usage --headless --no-
sandbox --disable-gpu]
options = {
binary: ENV['GOOGLE_CHROME_BIN'],
prefs: { password_manager_enable: false,
credentials_enable_service: false },
args: args
}
browser = Watir::Browser.new(:chrome, options: options)
Теперь он отлично работает в производственной среде,даже с моей фоновой работой (в основном я запускаю фоновую работу, которая отменяется нажатием кнопки).
У меня также есть другая фоновая работа, на этот раз Cron, которая автоматически очищается раз в две недели.Но по какой-то причине этот не работает.Я получил то же сообщение об ошибке, которое было до добавления всех строк выше
Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed
to start: crashed (unknown error: DevToolsActivePort file doesn't
exist)
(The process started from chrome location /app/.apt/o...)
Иногда я не получаю это сообщение об ошибке, и утилита запускается с заданием Cron (без меня что-либо меняя), но оно просто можетнайти элементы, которые я хочу (тогда как он работает каждый раз с другим фоновым заданием, не используя Cron, и это точно такой же контент)
Есть ли у вас какие-либо идеи, почему при использовании я использую другое поведение?работа Cron?Я бы понял, если бы у меня была одна и та же ошибка везде, но я не понимаю, почему происходит сбой или не удается найти мои элементы только тогда, когда я использую Cron.И последний вопрос: почему мои ошибки постоянно меняются?Обычно я что-то исправляю, и это работает очень долго, но с Selenium / ChromeDriver кажется, что мне приходится обновлять мой код каждые 3 дня!
Большое спасибо!