Running automation tests on our CI. Currently, we are retrieving the latest versions of Chrome and Firefox as part of our setup, however, the versions of chromedriver and geckodriver we use are hardcoded because there seems to be no link to the latest version.
Ex. here is the line that downloads the latest firefox version
wget -nv -O ~/FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64"
While here is the line that downloads a specific version of geckodriver
wget -nv -O ~/geckodriver.tar.gz "https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-linux64.tar.gz"
Is there anyway to always get the latest chromedriver and geckodriver?
CodePudding user response:
Check if this gist helps, at least for chromedriver:
version=$(curl http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
download_location= " http://chromedriver.storage.googleapis.com/ $version /chromedriver_linux64.zip "
rm /tmp/chromedriver_linux64.zip
wget -P /tmp $download_location
unzip /tmp/chromedriver_linux64.zip -d .
mv ./chromedriver ./chromedriver.linux
chmod u x ./chromedriver.linux
Same idea for geckodriver:
install_dir= " /usr/local/bin "
json= $( curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest )
if [[ $( uname ) == " Darwin " ]] ; then
url= $( echo " $json " | jq -r ' .assets[].browser_download_url | select(contains("maces")) ' )
elif [[ $( uname ) == " Linux " ]] ; then
url= $( echo " $json " | jq -r ' .assets[].browser_download_url | select(contains("linux64")) ' )
else
echo " can't determine OS "
exit 1
fi
curl -s -L " $url " | tar -xz
chmod x geckodriver
sudo mv geckodriver " $install_dir "