What is Selenium
It is one of the most widely used open source web interface (user interface) automation test suites, originally developed by Jason Huggins in 2004 as an inside Thought Works tool. Selenium supports automation across all browsers, platforms and programming languages. it can be easily deployed on platforms like Windows, Linux, Solaris, and Macintosh.
It is compatible with the operating system for mobile applications such as iOS, Windows Mobile and Android. Selenium supports many programming languages through the use of special drivers. for each language. The languages supported by Selenium include C #, Java, Perl, PHP, Python, and Ruby.
Jason Huggins, an engineer at Thought work, was working on a web application and it suddenly asked for a test.
He noticed that the usual manual testing (used to find bugs, problems, and defects in software) of his application was becoming less and less effective.
Components of Selenium
Selenium components have been used in the industry for a long time and are used by automation testers around the world. Let's take a look at the four main components of Selenium –
Selenium Web driver
Why learn Selenium Python?
- Open Source and Portability: Selenium is an open source, portable web testing framework.
- Combination of tools & DSL: Selenium is combination of tools & Domain Specific Language (DSL) for performing many various sorts of testing.
- Easy to understand and implement Selenium commands are divided into different classes, making them easy to understand and implement.
- Reduce the burden on testers as mentioned above, reduce the time it takes to interactively test cases and each new build, Close to zero This reduces the load on the tester.
- Cost Savings for Commercial Clients: The company wants to pay analysts compensation, which is stored through a computerized verification mechanism. You also get wishes for saving money for your business.
Features of Selenium
- Supports parallel test execution, reducing time and increasing test efficiency.
- Selenium can be integrated with frameworks like Ant and Maven to compile source code.
- Selenium requires fewer resources than other test automation tools.
- WebDriver API is compatible with selenium, which is one of the most important modifications made to selenium.
- Selenium web driver does not require a server installation, the test scripts interact directly with the browser.
- Selenium commands are divided into different classes, making it easier to understand and implement.
- Selenium Remote Control (RC) together with the WebDriver API is called Selenium 2.0. This version is built to support vibrant and Ajax websites.
- Selenium IDE provides playback and recording functionality for creating tests without having to learn the test programming language.
- It helps testers record their actions and export them as reusable scripts with an easy-to-understand and easy-to-use interface.
- Selenium is compatible with many different operating systems, browsers and programming languages.
Before continuing with this tutorial, let's first understand some of the key concepts associated with automating application testing. Due to the growing demand for effective software products, all software development teams must complete a series of tests before releasing the final product to market. Test engineers try to find flaws or bugs before a software product is released but delivered. Software is always flawed. Even with the best manual testing processes, there is always a chance that the final software product will fail or fail to meet the end user's requirements. Test automation is the best way to improve the efficiency, effectiveness, and testing volume of your software. Automated Testing Automated Testing uses specialized tools to automate the execution of handcrafted test cases without human intervention. Test automation tools can access test data, monitor test execution, and compare actual results with expected results.
Thus, detailed reports on the testing of the system under test are generated. Automated testing includes both functional testing and application performance testing. Functional Automation is used to automate functional test scripts. For ex, regression tests, which are repetitive in nature, are automated. Performance Automation is used to automate non-functional performance tests, such as measuring the response time of an application under heavy load (say, 100 users). Automation testing tool used to automate functionality: Quick Test Professional, provided by HP. Rational Robot powered by IBM. hardcoded user interface provided by Microsoft. Selenium, open source. Auto It, open source. Automation testing tool used for non-functional automation: Load Runner provided by HP.
JMeter, powered by Apache. Burp Suite based on PortSwigger. Acunetix, provided by Acunetix. Test Automation Life Cycle Selenium Fundamentals.
Why Automated Testing has certain benefits for improving the long-term performance of any software?
Although it is often said that it is too expensive or difficult to implement for small companies. Automated test tools can be programmed to create and execute test scripts at specific times without human intervention.
For ex, automated tests can run automatically overnight, and testers can analyze the results of automated tests the next morning. Auto test tools can play pre-recorded and predefined actions. automated tests support regular regression tests. Provides quick information for developers. Provides a vast number of test suit execution iterations. Provides disciplined test case documentation. Test automatically generates custom error reports. Less error prone than manual testing. Automating Web Application Testing If we consider a common type of software in the current market context, most software applications are written as web applications to run on an Internet browser. In an era of highly interactive and flexible software processes, when many organizations are adopting some form of agile methodology, test automation is often a requirement for projects.
How to install selenium in python
If you have "pip" on your system, you can easily install or update Python links:
pip install -U selenium
Alternatively, you can download the PyPI source distribution (eg selenium3.141.0.tar.gz). unzip it and run:
python setup.py install
Note: You might consider using virtual env to create isolated Python environments.
Drivers of Selenium
Selenium requires the driver to communicate with the selected browser. For example, Firefox requires geckodriver, which must be installed before running the following examples.
On your ROUTE page for example put it in / usr / bin or / usr / local / bin.
If you do not follow this step, you will receive an error.
Message: The geckodriver must be in the path.
Native drivers will be available for other supported browsers. Below are links to some of the more common browser drivers.
open a tab Firefox browser
load the page at the given URL
from selenium import webdriver
browser = webdriver.Firefox()
open a new Firefox browser
load the Yahoo homepage
search for “seleniumhq”
close the browser
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
assert 'Yahoo' in browser.title
elem = browser.find_element_by_name('p')
elem.send_keys('seleniumhq' + Keys.RETURN)
Limitations of Selenium
- Does not support desktop applications: Selenium does not support testing desktop applications.
- Experience: Selenium requires the experience and resources of your team to manage.
- Capacity: Selenium does not have built-in reporting capabilities, you have to rely on plugins like JUnit and TestNG to get test reports.
- Image test: Unable to test the image. To test images, you need to integrate Selenium with Sikuli.
- Maintainability and Extensibility: Selenium is a maintainable environment and is difficult to scale as it grows.
- Forums: Since Selenium is open source software, people should rely on community forums to solve their technical problems.
- REST and SOAP platforms are not supported - we cannot automatically test web services such as SOAP or REST using Selenium.