DEV Community

gokila selvaraj
gokila selvaraj

Posted on

SELENIUM ARCHITECTURE/PYTHON VIRTUAL ENVIRONMENT

**What is Selenium WebDriver?
Selenium WebDriver is a powerful automation tool used for testing web applications across different browsers and platforms. It provides a programming interface to interact with web elements and perform various actions such as clicking buttons, entering text, navigating pages, and validating elements. Unlike Selenium RC, WebDriver directly communicates with the browser using native methods, making it faster and more reliable. WebDriver supports multiple programming languages like Java, Python, C#, etc., making it versatile for developers and testers.

  1. It also enables parallel testing, allowing multiple test cases to run simultaneously across different browsers, improving efficiency and reducing testing time.

  2. WebDriver’s architecture includes a client library, WebDriver API, browser drivers, and the actual browsers, ensuring seamless automation and accurate testing results.

Architecture of Selenium WebDriver (Selenium 3):

The architecture of Selenium WebDriver in Selenium 3 follows a client-server model. Selenium provides client libraries for different programming languages like java, Python, Ruby, etc. These libraries’ aim is to allow Selenium WebDriver to interact with the control browser. JSON Protocol acts as a communication bridge between the client libraries and browser drivers. Client libraries send commands in JSON format over HTTP requests. Browser drivers understand the JSON wire Protocol and translate the commands into action within the browser.

Components of Selenium 3 WebDriver

Selenium Client Library: This component provides language-specific bindings or APIs (java, Python, Ruby, etc. ) that allow users to write test scripts and interact with the WebDriver.
JSON Wire Protocol over HTTP: The JSON Wire Protocol is a standardized protocol used for communication between the Selenium Client Library and the Browser Drivers. It defines a set of commands and responses in JSON format exchanged over HTTP requests.

Browser Drivers: These are executable files that establish a communication channel between the WebDriver and the actual web browsers such as Chrome, Firefox, Safari, etc. Each browser requires its specific driver (e.g., ChromeDriver, GeckoDriver, etc.) to enable WebDriver to control and automate browser actions.

Real Browsers: These are web browsers like Google Chrome, Mozilla Firefox, Microsoft Edge, etc., where the actual testing and automation take place. The WebDriver interacts with these browsers through their respective browser drivers to perform actions like clicking elements, filling forms, navigating pages, and validating content.

Working of Selenium 3 WebDriver:

1)Write a test script using the Selenium client library in your preferred language.
2)The test script sends commands through the client library to interact with the browser.
3)The client library converts commands into JSON format and sends them via HTTP request.
4)The browser driver decodes JSON commands and interacts with the real web browser.
5)Browser performs actions (e.g., clicking buttons, entering text) on the web page based on the received commands.

Architecture of Selenium 4 WebDriver:

Selenium four brings significant improvements to the architecture, often with the introduction of the W3C WebDriver Protocol. This protocol standardizes interactions between the purchaser and server, selling higher compatibility and consistency across one-of-a-kind implementations. Moreover, Selenium 4 affords a better guide for present-day net technology and progressed overall performance.

The architecture of Selenium 4 WebDriver has made a key change compared to Selenium 3 which is a communication protocol. Like Selenium 3, Selenium 4 offers client libraries for various programming languages, which help WebDriver interact with the browser.

WebDriver W3C protocol is the major change in Selenium 4 as it completely replaces JSON Protocol which was in Selenium 3.

The WebDriver W3C Protocol is defined by the World Wide Web Consortium (W3C) that ensure better compatibility and stability on different browsers and client libraries.

Components of Selenium 4 WebDriver:

Selenium Client Library: This component provides language-specific bindings or APIs (e.g., Java, Python, Ruby) that allow users to write test scripts and interact with the WebDriver.
WebDriver W3C Protocol: WebDriver is a protocol that provides a standard way for web browsers to communicate with an automation script. In Selenium 4, it focuses on W3C WebDriver Protocol, for better consistency and compatibility across different browsers.

Browser Drivers: These are executable files that establish a communication channel between the WebDriver and the actual web browsers such as Chrome, Firefox, Safari, etc. Each browser requires its specific driver (e.g., ChromeDriver, GeckoDriver, etc.) to enable WebDriver to control and automate browser actions.

Real Browsers: These are web browsers like Google Chrome, Mozilla Firefox, Microsoft Edge, etc., where the actual testing and automation take place. The WebDriver interacts with these browsers through their respective browser drivers to perform actions like clicking elements, filling forms, navigating pages, and validating content.

Working of Selenium 3 WebDriver:

1)Write your test script using the Selenium client library in your comfortable language.
2)The test script sends commands through the client library to interact with the browser.
3)Client library converts commands into WebDriver W3C Protocol format.
4)The browser driver receives commands via WebDriver W3C Protocol.
5)Browser drivers understand commands and interact with real web browsers.

Difference between Architecture of Selenium 3 & Selenium 4
**
**Selenium 3 :

1)JSON wire web driver protocol
2)client-server model communication
3)Limited browser Compatibility
4)Moderate performance
5)Limited Support for Modern Web Tech
6)Interactions with Browser(e.g., Gecko Driver, Chrome driver)
7)Limited future-proofing with reliance on browser-specific implementations.

**Selenium 4:**

1)W3C WebDriver Protocol
2)client-server model communication
3)improved browser Compatibility
4)improved performance
5)Better Support for Modern Web Tech
6)Interactions with Browser(e.g., Gecko Driver, Chrome driver)
7)Improved future-proofing with reliance on browser-specific implementations.

***Python Virtual Environment:*

1)It is sandboxing of the Python projects
2)It is a module which helps us to keep the required dependencies of a particular project separated by creating an isolated environment.

For that you need to install Python “virtualenv” module system wide

Install Python Virtual Environment:

Pip install virtualenv

Verify Python Virtual Environment

Virtualenv --version

Create Virtual Environment

It will create a project folder

_virtualenv

cd

Activate Virtual Environment

Scripts\activate

Deactivate Virtual Environment

Scripts\deactivate

Install Python Selenium Module

_pip install seleniu_m

Install Python WebDriver Manager Module

pip install webdriver-manager

Top comments (0)