ebarnouflant icon indicating copy to clipboard operation
ebarnouflant copied to clipboard

Setup chrome and selenium on Ubuntu 20.04

Open crohr opened this issue 4 years ago • 0 comments

On ubuntu 20.04, if you're getting errors like this when running selenium tests using chromium and chromedriver:

Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: crashed.                                                       
  (unknown error: DevToolsActivePort file doesn't exist)    

As well as those errors when trying to directly run chromium:

$ /snap/bin/chromium                                                                                                                              
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "its:rules"             
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: unknown element "its:translateRule"                                     
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'translate'                                             
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'selector'                                              
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'xmlns:its'                                             
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'version'                                               
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 8: unknown element "description"                                                                                                                                                                                            
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 4: unknown element "its:rules"                                                                                                                                                                                          
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 5: unknown element "its:translateRule"                                                                                                                                                                                  
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 5: invalid attribute 'translate'                                         
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 5: invalid attribute 'selector'                                          
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 6: invalid attribute 'xmlns:its'                                         
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 6: invalid attribute 'version'                                                                                                                                                                                            
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 8: unknown element "description"          

Then don't bother using the chromium package from Ubuntu, and just switch to the official package from google:

curl -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add 
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee -a /etc/apt/sources.list.d/google-chrome.list
sudo apt -y update 
sudo apt -y install google-chrome-stable

Also, if running headless, prefixing runs with xvfb-run might help (e.g. xvfb-run ./bin/rails test:system), that is, if you don't already use the default headless_chrome driver.

crohr avatar Jan 04 '22 13:01 crohr