UI Testing Journey Towards Selenium 4
Selenium 4 was released last year with new features and improvements. Being a selenium user it is high time to adapt to writing our automated tests in selenium 4 way. Here are some key questions we can ask before migrating selenium 3 tests to selenium 4.
- What does it take to migrate automated tests written using selenium 3 to selenium 4?
- Is it simple enough to start with when we have lots and lots of tests written using selenium 3?
- Is there any additional prerequisite or dependencies we may need to keep in mind?
- What are the challenges, errors and deprecation messages we may come across?
Migrating tests is a painful and time consuming process if not planned well. Thanks to the flexible architecture of selenium and detailed documentations, the process is actually simple if you are using any one of the officially supported client language language binding. In this presentation we are going to walk you all through the entire process of migrating selenium tests from 3 to 4 with key focus on the changes and new implementations.
Outline/Structure of the Demonstration
- Introduction and Agenda - 2 mins
- Java Selenium 3 vs Java Selenium 4 quick overview - 5 mins
- Json wire protocol out and W3C in - 5 mins
- Selenium IDE is back with different browser extension, locators strategy - 2 mins
- Selenium Grid the revamp - 5 mins
- Key changes demonstration using Java Selenium - 15 mins
- Deprecation of desired capabilities
- Changes in the action class
- Deprecation of FindsBy
- Changes in FluentWait
- Grid changes
- Selenium IDE changes using browser extension, example on looping constructs
Learning Outcome
- Will give the attendees enough room to get started with selenium 4 with confidence.
- Code samples covering important changes will be shared for reference.
Target Audience
Test Engineers/Selenium Users
Prerequisites for Attendees
Prior knowledge of selenium will help.
Links
schedule Submitted 10 months ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Maaret Pyhajarvi - Patterns to Whole-Team Test Automation Transformation
45 Mins
Case Study
Intermediate
Looking back at test automation in a product development team for describing patterns of success for research purposes, we identified themes where the experienced success significantly differed from what the literature at large was describing. With those lessons, I moved to a new organization and took upon myself to facilitate a transformation to whole-team test automation over multiple teams, one at a time, one after the other. In this talk, we will revisit the research from one organization two years ago with lessons from another in the last two years.
In this talk, I will introduce you to my core patterns to practice-based test automation transformation. I can't promise a recipe I would apply, as my recipe changes and adapts as I work through teams, but I can promise experiences of the same patterns working on multiple occasions as well as examples of how my go-to patterns turned out inapplicable. We'll discuss moving from specialist language to generalist language, visualizing testing debt and coverage, using visualization to showcase progress made of continuous flow of small changes, choosing to release based on automation no matter how little test automation there is, and growing individual competencies by sharing YOUR screen when working together.
-
keyboard_arrow_down
Sowmya Sridharamurthy - Automation in Digital transformation
45 Mins
Talk
Advanced
Businesses are rapidly changing and in constant look out for various revenue streams. The fight against disruption has driven businesses to reconsider their priorities and value steam. Now more than ever the need for automation is in rise. However, digital transformation does not end at automating the application development, it spans much beyond the teams reach.
To support this transformation curve, test engineers/automation engineers may have to do some heavy lifting and load sharing. What do I mean by this?, Let me ask you few questions
1. What is the scope of your automation?
2. What is your understanding of "Performance improvement"?
3. What is the reach of your Test strategy or in specific automation test strategy?
If the answer for all the above 3 questions starts and ends with "Application"/"solution offering" you are assigned to work on, then it's a good time to take a step back and visualise . Restricting yourself to partial play does not help business drive this transformation at its best.
In this talk, I would like you to walk through with me to understand how automation can rise above and beyond a limited scope enabling the businesses for success and imprinting oneself with greater learning opportunities. Its a Win-Win
-
keyboard_arrow_down
Parasar Saha - Cloud First Automation Approach – Road to Scalable and Faster Test Automation Pipelines
45 Mins
Talk
Advanced
Cloud has changed the way the software world works. Companies have accelerated their development and deployment cycles with 3x or more speed by adopting the cloud. But Testing in most organizations either is running locally or not taking advantage of the full potential of cloud infrastructure. Testing is the home-alone kid, left to spend the Christmas weekend without the bells the whistles that cloud has to offer.
Digital transformation in IT and Agile delivery model are pushing the testing teams to complete their testing in shorter testing windows. 26 % of the organization are moving to daily releases. 70% of the organization have adopted Agile in delivery. Even after having a high amount of automation coverage teams are struggling to keep up with the pace of testing asked by the business teams.
This talk is about how you can change the story and accelerate cloud adoption in your testing organization with Selenium-based frameworks. Through cloud adoption you benefit from box features of the cloud: On-demand scaling, Cost optimation, Security, Reliability, Geo -routing of your test infrastructure. Cloud adoption doesn’t need to limit to the execution of selenium tests but can help you in test management of automated selenium tests, test data generation, test reporting, test artifact store, and many more. It is not enough to have an Automation First Approach these days, you also need to have Cloud-First Approach for test infrastructure to get the best value from automation.
The talk elaborates on factors to consider while building up the cloud-based testing pipeline and how they will benefit your organization in terms of time to market, cost optimization, and raising the bar of quality.
Finally talks about the moonshot of having a Testing Cloud – AWS of Testing and what will it take to reach there as a testing community.
Take your testing to the cloud, and fly your flag high in quality!
-
keyboard_arrow_down
Michael Mintz - There's no time to write tests! Give me a recorder for generating them!
20 Mins
Case Study
Beginner
Time is short. You've been assigned to write hundreds (or even thousands) of tests in a small amount of time. Is there a faster way to create those tests than just writing out all the code yourself? Is there a faster way to determine the best CSS selectors to use in your tests than right-clicking and inspecting every element on a page that you need to interact with? If so, then the good news is that you may be able to record the actions that you need for tests, and then export those actions into a runnable script. The most popular tool used for this so far is Selenium IDE.
What are the drawbacks of using Selenium IDE (and other tools) for generating tests quickly:
- The selectors that are picked could be long, messy, and/or inefficient.
- The generated scripts can have a lot of extra lines of code. (Unnecessary imports, etc.)
- The generated scripts can be flaky when they run.
- Generating scripts like this could lead to a lot of duplicate code, which would be better off getting placed in reusable methods.
Is there another open source recorder alternative that can get around some of these limitations? Yes, there is: The SeleniumBase Recorder for Python. Demo included!
-
keyboard_arrow_down
Amuthan Sakthivel - CLEAN TEST DESIGN PRACTICES FOR EFFECTIVE SELENIUM AUTOMATION FRAMEWORK
45 Mins
Demonstration
Intermediate
Selenium is an amazing library for UI Automation. However, using it in a project needs a proper test design, a good approach and the best framework. I have listed some of the challenges that most people face during automation and will also brief on how we can solve those problems with effective design and approach.
Key Challenges :
1. Field level validations on a form containing several fields. (Many people will ignore these tests in automation as it may increase the number of lines of code and number of tests. Maintaining them is a difficult task)
2. Verifying the state of the web element before operating on it. (It is imperative to check whether a web element is present or visible or clickable or needs a scroll to operate. Also, different elements need different explicit wait times. Most probably we will have number of methods like waitForElementToBeClickable, waitForElementToBeVisible. This again results in increased lines of code. )
3. Assertion of multiple components on a page. (Sometimes we want to validate several items on a page and writing methods like getTitle, isCompanyLogoPresent, isFooterMenuPresent either results in multiple tests or poor test code spoiling the readability.)
4. CI/CD integration. ( Most of the companies were using Jenkins as their CI/CD tool to schedule tests and this is most probably maintained by Devops team. To set up Jenkins job we need a lot of permission. At the worst we need a machine/infra to run and schedule our tests)
How we can solve these commonly occurring problems?1. With the advent of functional programming, we can pass different behaviours to the test methods. In the demo, I will use BiPredicate Interface implementations to solve this problem with clean design.
2. Annotations in Java is very powerful but hardly used in Test Automation Frameworks. I will use reflections and annotation to solve this problem with a much cleaner design.
3. We can leverage Custom Validator classes and AssertJ to write some effective readable tests.
4. We can leverage Github Actions and the Github runner to set up Selenium Grid Infrastructure and run our tests without any additional infra.
Tech Stack : Java, Functional Interfaces, Selenium, AssertJ, Github Actions