I was facing different errors in using Selenium 4's DevTools working with the Chrome browser in Docker container.
Thanks to Titus Fortner and Diego Molina's quick help, I was able to resolve the same. You can see the conversation with the awesome Selenium Committers here.
Monday, August 7, 2023
Tuesday, July 11, 2023
I am writing on my blog after a very long time ... Don't remember the last time I wrote a post. So what has happened in the past 6-12 months?
Thanks to the wonderful conference and meetup organizers, I have traveled a lot for the following:
- DevOps Days 2022 @Switzerland
- Meetup @New York
- Meetup @Boston
- Selenium Conf 2023 @Chicago,
- Meetup @Sydney,
- Testing Talks 2022, Melbourne
- StarEast 2023, Orlando
I also spoke at many meetups and events in Gurgaon, Hyderabad, Bangalore, Mumbai and Pune.
I also spoke in some very interesting webinars in this time. The ones that surprised me the most because of the huge popularity and turnouts were:
- Unlocking the Power of ChatGPT and AI in Testing: A Real-World Look
- Unlocking the Power of ChatGPT and AI in Test Automation: Next Steps
While doing this, I have been contributing to open-source - teswiz and AppiumTestDistribution are the big noteworthy items. Recent work has been to support Selenium WebDriver v4 and Appium 2.0 in these frameworks.
Now in July 2023, this is the scheduled lineup of events (with dates, location and topics):
- Saturday, 8 July 2023 - A modern look at AI-powered Cross Browser Testing at Game of Testing, Bangalore
- Thursday, 13th July 2023 - Can AI Autogenerate and Run Automated Tests? - An Applitools webinar.
- Monday, 17th July 2023 - Visual Validation - The missing tip of the automation pyramid & and A modern look at AI-powered Cross-Browser Testing at Gentrack Testing Meet Up, Auckland, NZ.
- Thursday, 20th July 2023 - Unlocking the Power of ChatGPT and AI in Testing & Test Automation, at the Software Test Automation Group (STAG) meetup, Melbourne, Australia.
- Monday, 24th July 2023 - Eradicate Flaky Tests and Automating the real-user scenarios across multi-apps, and multi-devices, at All Things Testing Brisbane, Australia.
- Wednesday, 26th July 2023 - Power your Automation using AI, at Testing Talks Sydney Australia.
- Thursday, 27th July 2023 - Metrics to measure the effectiveness of your engineering processes, practices, and implementation, at ITMA-Applitools event, Singapore.
Sunday, May 22, 2022
Simulating real-user scenarios as part of your automation is a solved problem. You need to understand the domain, the product, the user, and then define and implement your scenario.
But there are some types of scenarios that are complex to implement. These are the real-world scenarios having multiple personas (users) interacting with each other to use some business functionalities. These personas may be on the same platform or different (web / mobile-web / native apps / desktop applications).
- How do you check if more than 1 person is able to join a zoom / teams meeting? And that they can interact with each other?
- How do you check if the end-2-end scenario that involves multiple users, across multiple apps works as expected?
- Given user places order on Amazon (app / browser)
- When delivery agent delivers the order (using Delivery app)
- Then user can see the order status as "Delivered"
Even though we will automate and test each application in such interactions independently, or test each persona scenarios independently, we need a way to build confidence that these multiple personas and applications can work together. These scenarios are critical to automate!
teswiz, an open-source framework can easily automate these multi-user, multi-app, multi-device scenarios.
Example: Multi-user, Multi-device test scenario
Example: Multi-user, Multi-app, Multi-device test scenarioSee teswiz and getting-started-with-teswiz projects for information, or contact me.
Friday, March 25, 2022
For one of the applications, when I run some Selenium WebDriver tests. I see a Select a certificate popup. I am not able to handle this, and hence my test fails.
Has anyone been able to handle this popup, or rather, avoid this popup being shown?
If I manually select a certificate and click OK, I am prompted for my mac credentials:
Thanks in advance!
Tuesday, March 22, 2022
How do you automate OTP related test scenarios? Do you use a fake SMS service? Does it have restapi to query the SMS messages? geography support?
- In addition, there are paid services that will allow you to integrate this as part of functional automation - https://www.linkedin.com/posts/anandbagmar_otp-test-scenarios-activity-6889461246991613952-KbrC/ - lot of discussion here
Friday, February 25, 2022
ATDD = Anti-Trust Driven Development
BDD = Benefit Driven Development
CDD = Cribbing Driven Development
CDD = Control Driven Development
IDD = Indifference Driven Development
ODD = Optimism Driven Development
PDD = Punishment Driven Development
RDD = Reporting Driven Development
SDD = Slide(s) Driven Development
SDD = Short-cut Driven Development
A few variants kindly shared by the community members:
FDD = Food Driven Development
SGDD = Style Guide Driven Development http://styleguidedrivendevelopment.net/
To recap, here is the original list
ATDD = Acceptance Test Driven Development
BDD = Behavior / Business Driven Development
BDD = Blame Driven Development
BDD = Buzzword Driven Development
CDD = Complexity Driven Development
CDD = Calendar Driven Development
CDD = Checklist Driven Development
CDD = Chadi (stick) Driven Development
CDD = Constraint Driven Development
CPDD / CDD = Copy-Paste Driven Development
DDD = Demo Driven Development
DDD = Date Driven Development
DDD = Defect Driven Development
DDD = Document (PRD) Driven Development
EDD = Escalation Driven Development
EDD = Estimation Driven Development
EDD = Excel Driven Development
FDD = Fake-it Driven Development
FDD = Fashion Driven Development
FDD = Fear Driven Development
FDD = Footwear (punishment) Driven Development
HDD = Hope Driven Development (fingers crossed)
IDD = Instinct Driven Development
IDD = Issue Driven Development
JDD = Jira Driven Development
MDD = Metrics Driven Development
MDD = Manager / Management Driven Development
MDD = Mandate Driven Development
MDD = Meeting Driven Development
NDD = No-Drive (towards) Development
PDD = Patch(work) Driven Development
PDD = Plan Driven Development
PDD = Prayer Driven Development
PDD = Process Driven Development
PDD = Profanity Driven Development
RDD = Resource Driven Development
RDD = Resume Driven Development
SDD = Stackoverflow Driven Development
SDD = Stakeholder Driven Development
SDD = Swallow-exceptions Driven Development
SDD = Sprint Driven Development
TDD = Trust Driven Development
VDD = Velocity Driven Development
Monday, February 21, 2022
Many users of Selenium WebDriver may be using the PageFactory created by Simon Stewart. However, it is not a good idea to use it.
You may be thinking why should I not use it? It is so easy to use it, and its popular.
Well, here are 2 reasons why you should not use the PageFactory:
The `FindsBy` annotation isn't recommended, because the PageFactory class is really badly implemented and inflexible, but it's not going away in the java bindings.
The `FindsByX` interfaces are going away. Better to use a `By` locator and use that.
Reason #2: While Reason #1 should have been sufficient, many people implementing automation using Selenium WebDriver do not know, or did not pay heed to what Simon said. So another WebDriver & WATIR contributor, Titus Fortner (https://twitter.com/titusfortner) explained in detail why using PageFactory is not a good idea in his blog post - https://titusfortner.com/2021/02/03/page-factory-optimization.html.
I sincerely hope these reasons are sufficient for you to move away from the PageFactory and use something more efficient.
Friday, January 28, 2022
I have struggled many times to switch between different JDK versions quickly. There always seemed to be many steps required to be done.
Ever since I started using openjdk, and then focussing on doing my machine setup via a script (as opposed to doing each step manually), I came across this very simple way of switching the jdk.