Skip to main content

Install WebDriver Chrome or Firefox for Selenium for automated testing web application

Installation for automated testing 


sudo apt-get update


apt-get install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4  

apt-get install firefox

Pip install selenium


Sometimes you can get some exceptions 



Selenium “Unable to find a matching set of capabilities” despite driver being in /usr/local/bin

Or

selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities




Updating Firefox and Selenium solved it for me. I don't pretend to have an explanation for the root cause however.


Updated Firefox 48 → 53


Updated to Selenium 3.4.1


https://pypi.org/project/selenium/

https://github.com/mozilla/geckodriver/releases 



Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line


Firefox browser has installed? 


apt-get install firefox 


Script example for chrome WebDriver automated installation on Ubuntu 




#!/usr/bin/env bash


# https://developers.supportbee.com/blog/setting-up-cucumber-to-run-with-Chrome-on-Linux/


# https://gist.github.com/curtismcmullan/7be1a8c1c841a9d8db2c


# http://stackoverflow.com/questions/10792403/how-do-i-get-chrome-working-with-selenium-using-php-webdriver


# http://stackoverflow.com/questions/26133486/how-to-specify-binary-path-for-remote-chromedriver-in-codeception


# http://stackoverflow.com/questions/40262682/how-to-run-selenium-3-x-with-chrome-driver-through-terminal


# http://askubuntu.com/questions/760085/how-do-you-install-google-chrome-on-ubuntu-16-04





# Versions


CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`


SELENIUM_STANDALONE_VERSION=3.4.0


SELENIUM_SUBDIR=$(echo "$SELENIUM_STANDALONE_VERSION" | cut -d"." -f-2)





# Remove existing downloads and binaries so we can start from scratch.


sudo apt-get remove google-chrome-stable


rm ~/selenium-server-standalone-*.jar


rm ~/chromedriver_linux64.zip


sudo rm /usr/local/bin/chromedriver


sudo rm /usr/local/bin/selenium-server-standalone.jar





# Install dependencies.


sudo apt-get update


sudo apt-get install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4





# Install Chrome.


sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add


sudo echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list


sudo apt-get -y update


sudo apt-get -y install google-chrome-stable





# Install ChromeDriver.


wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/


unzip ~/chromedriver_linux64.zip -d ~/


rm ~/chromedriver_linux64.zip


sudo mv -f ~/chromedriver /usr/local/bin/chromedriver


sudo chown root:root /usr/local/bin/chromedriver


sudo chmod 0755 /usr/local/bin/chromedriver





# Install Selenium.


wget -N http://selenium-release.storage.googleapis.com/$SELENIUM_SUBDIR/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar -P ~/


sudo mv -f ~/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar /usr/local/bin/selenium-server-standalone.jar


sudo chown root:root /usr/local/bin/selenium-server-standalone.jar


sudo chmod 0755 /usr/local/bin/selenium-server-standalone.jar









Comments

Popular posts from this blog

Pgpool PgBouncer Postgresql streaming replication, load balancing and administration

The term scalability refers to the ability of a software system to grow as the business that uses it grows. PostgreSQL provides some features to help you build scalable solutions, but strictly speaking, PostgreSQL itself is not scalable. It can effectively use the following resources from one computer. Now, we will show you some configurations that may be useful for your use case. However, this can be problematic when distributing the database solution to multiple computers, because the standard PostgreSQL server can only run on a single computer. In this article, we will study different extension schemes and their implementation in PostgreSQL. Replication can be used in many expansion scenarios. Its main purpose is to create and maintain a backup database when the system fails. This is especially true for physical replication. However, replication can also be used to improve the performance of PostgreSQL-based solutions. Sometimes third-party tools can be used to implement complex exp

Tekstverwerking python Text processing python SpaCy, TensorFlow, NLTK, Allen-NLP, Stanford-NLP

 Dit post maakt gebruik van spaCy, een populaire Python-bibliotheek die de taalgegevens en algoritmen bevat die je nodig hebt om teksten in natuurlijke taal te verwerken. Zoals u in dit post zult leren, is spaCy gemakkelijk te gebruiken omdat het containerobjecten biedt die elementen van natuurlijke taalteksten vertegenwoordigen, zoals zinnen en woorden. Deze objecten hebben op hun beurt attributen die taalkenmerken vertegenwoordigen, zoals delen van spraak. Op het moment van schrijven bood spaCy voorgetrainde modellen aan voor Engels, Duits, Grieks, Spaans, Frans, Italiaans, Litouws, Noors Bokmål, Nederlands, Portugees en meerdere talen gecombineerd. Bovendien biedt spaCy ingebouwde visualizers die u programmatisch kunt aanroepen om een grafische weergave van de syntactische structuur van een zin of benoemde entiteiten in een document te genereren.   De spaCy-bibliotheek ondersteunt ook native geavanceerde NLP-functies die andere populaire NLP-bibliotheken voor Python niet hebben. Spa

Google Closure

   Closure Library De Closure-bibliotheek is een JavaScript-bibliotheek, vergelijkbaar met andere moderne producten zoals jQuery, Angular, Vue.js, Dojo en MooTools. De coderingsstijl en het gebruik van opmerkingen in de Closure-bibliotheek zijn op maat gemaakt voor Closure Compiler. In vergelijking met andere JavaScript-bibliotheken is het de belangrijkste onderscheidende factor van Closure Compiler. Een eenvoudig compressie-experiment ontdekte dat wanneer Closure Compiler wordt gebruikt in plaats van YUI Compressor, de Closure Lib-code met 85% kan worden verminderd, wat een enorme impact kan hebben op de codecompressiecapaciteit van de compiler.    De implementatie van de  closure bibliotheek richt zich ook op leesbaarheid en prestaties. Wees zuinig bij het maken van objecten, maar wees genereus bij het benoemen en opnemen van objecten. Het heeft ook een prachtig gebeurtenissysteem, ondersteuning voor klassen en overerving en verschillende UI-componenten, waaronder bijvoorbeeld een ri