rubycdp / ferrum

Headless Chrome Ruby API
https://ferrum.rubycdp.com
MIT License
1.7k stars 122 forks source link

Chrome binary not working #289

Closed wonderer007 closed 1 year ago

wonderer007 commented 1 year ago

I am trying to run browser with chrome binary (on ubuntu server)

browser = Ferrum::Browser.new({ browser_path: '/chromedriver' })

Getting below error

Ferrum::ProcessTimeoutError: Browser did not produce websocket url within 10 seconds, try to increase `:process_timeout`. See https://github.com/rubycdp/ferrum#customization
from /Users/haiderali/.rvm/gems/ruby-2.6.6/gems/ferrum-0.11/lib/ferrum/browser/process.rb:149:in `parse_ws_url'

Any Idea what am I wrong ?

Note I am sing chrome browser from webdrivers gem. Earlier I have tried downloading chrome browser from https://sites.google.com/a/chromium.org/chromedriver/ as well

Update

I have installed a chrome browser on remote server using

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb

I can see chrome has been installed

whereis google-chrome

outputs

google-chrome: /usr/bin/google-chrome

or google-chrome --product-version outputs 105.0.5195.125

But still browser = Ferrum::Browser.new isn't working same. I even have tried Ferrum::Browser.new({ process_timeout: 20 }) and it return same error

wonderer007 commented 1 year ago

Solved

  1. We need chrome executable not driver
  2. I was using docker and Ferrum::Browser.new({ browser_options: { 'no-sandbox': nil } }) solved the issue
epugh commented 5 months ago

I wanted to share that no-sandbox worked for me as well.