
Selenium is widely recognized as the leading test automation tool for web applications and plays a crucial role in the implementation of DevOps practices. As the industry increasingly demands that QA/testers possess a strong understanding of programming, the role of SDET (Software Development Engineer in Test) is in high demand.
This Selenium course has no prerequisites and is designed to start from the very basics of programming, focusing on core Python. Participants will receive comprehensive training on all aspects of Selenium, starting from the fundamentals and progressing to advanced topics.
Knowing how to maintain source code is essential for any developer. In this course, participants will also learn about Git and GitHub, popular version control systems widely used in the industry. This training will equip participants with the necessary skills to effectively manage and collaborate on source code.
Considering the widespread adoption of DevOps in organizations, the course covers the creation of pipelines in Jenkins. Participants will gain hands-on experience in setting up automated build, test, and deployment pipelines, ensuring efficient software delivery and integration of testing practices within the DevOps workflow.
Who can attend this course
Engineering Graduates
Working Professionals
(Manual Testers)
Developers
Courses Outline
Core Python
Selenium WebDriver
Test Automation Frameworks
BDD / Cucumber
Automation Basics
PyTest
Git/GitHub
Introduction to selenium
Design Frameworks
Jenkins
Why Niche Thyself
All our trainers are having minimum 10 years of experience in test automation.
Every session we conduct is a combination of theory and hands-on
All sessions are recorded which participants can keep with them for life time
Courses Benefits
Career opportunities: Python Selenium is a highly sought-after skill in the job market. By completing the course, you enhance your career prospects as a software tester or automation engineer, opening doors to exciting opportunities in the industry.
Practical hands-on experience: The course focuses on hands-on exercises and real-world examples, allowing you to gain practical experience in using Python Selenium for web test automation. This practical knowledge strengthens your understanding and prepares you for real-world testing challenges.
Lifetime access to course materials: Upon completion of the course, you receive lifetime access to the course materials, including recorded sessions, code samples, and supplementary resources. This provides a valuable reference that you can revisit at any time to reinforce your learning and stay updated in your test automation journey.
Comprehensive understanding: The Python Selenium course provides a comprehensive understanding of web test automation using the Selenium framework with Python. You will gain in-depth knowledge of Selenium’s features, functionalities, and best practices.
Versatile automation skills: Learning Python Selenium equips you with versatile automation skills applicable to a wide range of web applications and browsers. You will be able to automate repetitive tasks, perform functional testing, and validate web application behaviour across different browsers and platforms.
Scalability and reliability: Python Selenium is capable of handling complex web applications and supports scaling test automation efforts. With its robustness and reliability, you can perform tests on large-scale projects, ensuring the application’s functionality and stability.
Continuous learning and community support: Python has a thriving community with abundant resources, tutorials, and forums. By learning Python Selenium, you join a supportive community of professionals, providing opportunities for continuous learning, knowledge sharing, and staying updated with the latest industry trends.
Demo Video
“Experience the future of learning: Watch our captivating demo video and embark on a transformative educational journey with our courses.”
Detail Course Content
Python - Introduction
Introduction
- Installation instructions
- Python Ecosystem
- The interactive shell
- PyCharm
- sample programs
Managing Data
- Strings
- Numbers
- Boolean
Operators
- Assignment
- Boolean
- Comparison
- Unary and bitwise
- String operators
- In operator
Conditional Statements
- If else
- While
- For
Python - Functions in Python
Functions in Python
-
Some sample functions
-
Importance of functions
-
Arguments to a function
-
*args,**kwargs
-
Function decorators
-
Lambdas
Data structures
-
Lists
-
Tuples
-
Dictionary
-
Sets
-
Looping through data structures
Python - Exception Handling
Exception Handling
-
Importance of writing good code with logging and exception handling
-
Raising exceptions
-
User defined exceptions
-
Handling exceptions
-
Logging information for debugging purposes
Modules
-
What is a module?
-
Creating modules
-
Third party modules
-
Installing third party modules
-
Using multiple modules in your code
-
Design considerations
Python - Packages
Packages
- Design considerations
- Introduction to packages
- Different ways to group applications/modules into packages
- Introduction to OOP
- Constructors/initializers
- Objects
- Inner classes
- Interfaces
- Abstract classes
- Properties
- duck_typing
Selenium - Automation Basics
Automation Basics
- Fundamentals of test automation
- ROI in Automation
- Basics of automation framework
- Introduction to various tools and comparison with Selenium
- What is DevOps?
Introduction to Selenium
- What is Selenium and how it is used in the industry
- Features of Selenium
- Difference between Selenium and QTP
- Installation of Selenium and supporting tools/APIs
- Insight to HTML and web applications architecture
- Introduction to PyTest And PyCharm
- How Selenium helps achieve DevOps
Selenium - PyCharm IDE
- How to build test project
- frequently use menu items
- Use of Settings
- Use of shortcuts and error correction
- Installation of other packages
- Other key features required to work with PyCharm for automation using Selenium
Selenium - WebDriver - Basics
- Introduction to WebDriver architecture
- WebDriver configuration with PyCharm
- Opening and closing browser
- Introduction to PyTest
- Writing Simple Tests
- Chrome browser developer tools to locate elements
- Locating Techniques – with extensive practice on XPath and CSS selectors
Controlling Browsers
- Navigation
- Page Title, URL and Page source
- Cookie management
- Size and position
- Navigating to different windows, frames and alerts
Controlling elements
- WebElement commands
- Handling textbox, links, buttons, dropdowns, multiselect, radiobuttons and checkboxes
- Handling webtables
Browser Synchronization /Waits in Selenium
- time.sleep() – why should not be used
- Implicit Wait
- Explicit Wait
Complex Actions
- Mouse Hover
- Context/Right click
- Double Click
- Drag and Drop
- Building complex actions
Page Object Design Pattern (PODP)
- What is design pattern
- Need for PODP – reusability and maintainability
- Test speaks only domain
PyTest Framework
- Introduction to PyTest Framework
- Installation of PyTest
- PyTest Fixtures
- Running Test Suite with PyTest
- Test Reports
- SRP Principle (Single Responsibility Principle)
- technique of naming
- FIRST Principle of writing test cases
- Verification and Assertion
- Groups and Parameters
- Parallel Execution (DevOps context)
Selenium Grid
- What and When of Grid
- What is Hub and Node
- Understanding Grid 4.0
- Designing test scripts for Grid
- DesiredCapabilities and RemoteWebDriver
- Creating grid of 10-15 machines/VMs/containers
- Running test scripts on Grid (parallel execution on at least 10 to 15 machines during training)
Additional Topics on Test Automation Framework
- Build automation
- Logging
- Listeners
- BDD-Behave – Writing Selenium Tests
- Handling Browser Profiles
Git/GitHub
- Introduction to SCM
- Types of SCMs
- Creating repo(repositories)
- Adding files to repo
- Branches and Best practices
- Merging, Cloning, tagging
- Importance of .gitignore
- Working on Git Command Line
- GitHub account creation
- Uploading your project with GitHub using command line and Eclipse
- Integration with Jenkins using GitHub Webhooks
Jenkins
- What is CI and CD
- Manage Configuration
- Setup Build Jobs
- Plugins
- Scheduling Builds (Push/Pull)
- Configuring a Jenkins Pipeline for test execution
BDD/Behave
- What is BDD/TDD
- BDD with Agile
- Feature File – Gherkin
- Step Definitions
- Writing Tests
- Executing tests using Behave
Creating Test Automation Framework
- What is Test Automation Framework
- Why we should care
How to create a robust automation Framework
- Re-usability and maintainability is the key focus area
- Configurability
- Effective Usage of Design Patterns
- Test Data Management
- Exception Handling
- Debugging using Logs and Listeners
- Effective exception handling
- Principles of writing clean code
- Reporting Frameworks
- Integration with CI tools like Jenkins
- Use of version control
- Support for parallel execution – on-premise/cloud
Test Automation Project
- Automate an e-commerce application
- Make decisions on frameworks based on requirements
- Design Test Data Management Strategy
- Design logging and listening strategy
- Design exception handling and reporting
- Design page objects for store and admin panel
- Write tests and execute them using PyTest
- Make scripts accept run-time parameters instead of hardcoding
- Create utility package to re-use (modular framework)
- Allure Reporting Framework
- Integrate with Jenkins and GitHub
Post Training Association
- Typical Interview questions
- Resume Preparation
- Mock Interview – only on request
- Providing interview calls with companies
- Regular communication on WhatsApp group regarding selenium webinars, conferences and job openings