Welcome to Pylenium
Web Test Automation for Python
The mission is simple
Bring the best of Selenium, Cypress and Python into one package.
This means:
Automatic waiting and synchronization
Quick setup to start writing tests
Easy to use and clean syntax for amazing readability and maintainability
Automatic driver installation so you don't need to manage drivers
Leverage the awesome Python language
and more!
Test Example
Let's use this simple scenario to show the difference between using Selenium
and Pylenium
:
Visit the QA at the Point website: https://qap.dev
Hover the About link to reveal a menu
Click the Leadership link in that menu
Assert Carlos Kidman is on the Leadership page
Purpose
I teach courses and do trainings for Selenium, Cypress, and Playwright, but Selenium, out of the box, feels clunky. When you start at a new place, you almost always need to "setup" the framework from scratch all over again. Instead of getting right to creating meaningful tests, you end up spending most of your time building a custom framework, maintaining it, and having to teach others to use it.
Also, many people blame Selenium for bad or flaky tests. This usually tells me that they have yet to experience someone that truly knows how to make Selenium amazing! This also tells me that they are not aware of the usual root causes that make Test Automation fail:
Poor programming skills, test design, and practices
Flaky applications
Complex frameworks
What if we tried to get the best from both worlds and combine it with a fantastic language?
Selenium has done an amazing job of providing W3C bindings to many languages, making scaling a breeze. W3C is the standard for the web, so leveraging it just makes sense.
Cypress has done an amazing job of making the testing experience more enjoyable - especially for beginners. It's easy to start with and the API is readable and flows nicely.
Pylenium looks to bring more Cypress-like bindings and techniques to Selenium (like automatic waits) and still leverage Selenium's power along with the ease of use and power of Python.
Quick Start
If you are new to Selenium or Python, do the Getting Started steps 1-4
You can also watch the Getting Started video with Pylenium's creator, Carlos Kidman!
You don't need to worry about installing any driver binaries like chromedriver
. Pylenium does this all for you automatically :)
1. Install pyleniumio
2. Initialize Pylenium
Execute this command at your Project Root
This creates three files:
conftest.py
- This has the fixtures needed for Pyleniumpylenium.json
- This is the configuration file for Pyleniumpytest.ini
- This is the configuration file for pytest
By default, Pylenium uses the Chrome browser. You have to install Chrome or update the pylenium.json
file to use the browser of your choice.
3. Write a test
Create a directory called tests
and then a test file called test_google.py
Define a new test called test_google_search
Pylenium uses pytest as the Test Framework. You only need to pass in py
to the function!
Now we can use Pylenium Commands to interact with the browser.
Some IDEs, like PyCharm, auto-detect pytest fixtures and provide intellisense and autocomplete.
4. Run the Test
This will depend on your IDE, but you can always run tests from the CLI:
You're all set! You should see the browser open and complete the commands we had in the test :)
Last updated