Selenium is a versatile tool that can be used for automating browser-based tests. It has a wide range of features that make it an ideal choice for automating tests. Selenium can be used to automate tests for web applications and web services. Selenium supports a number of programming languages, including Java, C#, Python, and Ruby.
This makes it possible to write tests in the language that you are most comfortable with. In addition, Selenium has a large user community that provides support and help when needed.
In this blog post, you will learn to set up a Selenium environment on an Ubuntu system. Also provides you with a few examples of Selenium scripts written in Python.
You must have Sudo privileged account access to the Ubuntu system.
One of the examples also required a desktop environment to be installed.
1. Installing Google Chrome
Use the below steps to install the latest Google Chrome browser on Ubuntu and Debian systems.
- Open a terminal on your system and type:
wget -nc https://dl-ssl.google.com/linux/linux_signing_key.pub
cat linux_signing_key.pub | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/linux_signing_key.gpg >/dev/null
- Next, create a Apt PPA file for Google chrome on your system by executing:
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/chrome.list'
- Now, execute the following commands to update the apt cache and install Google Chrome stable version:
sudo apt update
sudo apt install google-chrome-stable
Press ‘y’ for all the confirmation asked by the installer.
This will install Google Chrome on your Ubuntu system.
2. Installing Selenium and Webdriver for Python
We will use a virtual environment for running Python scripts. Follow the below steps to create Python virtual environment and install the required python modules.
- Create a directory to store Python scripts. Then switch to the newly-created directory.
mkdir tests && cd tests
- Setup the Python virtual environment and activate it.
python3 -m venv venv
Once the environment is activated, You will find the updated prompt as showing in below screenshot:
- Now use PIP to install the selenium and webdriver-manager Python modules under the virtual environment.
pip install selenium webdriver-manager
3. Example 1: Selenium Python Script with Headless Chrome
Your system is ready to run Selenium scripts written in Python. Now, create a sample selenium script in Python that fetches the title of a website.
This script will run headless, So you can run it without an X desktop environment. You can simply SSH to your system and run the below example:
- Create a Python script and edit in favorite text editor:
- Copy-paste the following Selenium Python script to the file.1234567891011121314from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.chrome.service import Servicefrom webdriver_manager.chrome import ChromeDriverManageroptions = Options()options.add_argument('--headless')options.add_argument('--no-sandbox')options.add_argument('--disable-dev-shm-usage')driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)driver.get("https://python.org")print(driver.title)driver.close()
CTRL + Oto save content to file and press
CTRL + Xto close editor.
- Now, run this Python script in a shell.
You will see the output something like below:
4. Example 2: Selenium Python Script with Chrome GUI
In order to run this example, the Ubuntu system must have installed a Desktop environment. If the desktop is not installed, use another tutorial to install the Desktop environment on Ubuntu systems.
Now, log in to the desktop interface and try to run the below example.
- Open a command prompt, then create a new Python script and edit in your favorite text editor.
- Copy-paste the below snippet in the file:123456789101112131415161718192021import timefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom webdriver_manager.chrome import ChromeDriverManageroptions = Options()# options.add_argument('--headless')# options.add_argument('--no-sandbox')options.add_argument('--disable-dev-shm-usage')driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)driver.get('http://www.google.com')search = driver.find_element(by=By.NAME, value="q")search.send_keys("Hey, Tecadmin")search.send_keys(Keys.RETURN)time.sleep(5)driver.close()
Write the changes to file with
CTRL + Oand close this with keyboard shortcut
CTRL + X
- This is a Selenium script written in Python, that will launch the Google Chrome web browser and search for a defined string. then close the browser.
- Run the Python script in terminal:
You will see that a Browser window will open and perform the defined tasks in the script. See the below screencast of the run:
In this tutorial, you have learned about the configuration of Selenium for Python on Ubuntu and Debian Linux systems. Also provides you with two Selenium examples. Hope this tutorial helps you to understand to run Selenium with Python.