One of my long standing work in Software Engineering is testing for Browser Compatibility. But, is that a bigger problem as it was between 2000 to 2017?
Today's browsers have to and adhere to the common guidelines and standards of W3C. Likewise, the web development and artefacts [libraries, frameworks, language, etc.] used are expected to adhere the standards and guidelines.
In 2012, I layed out the evolving model of Test Architecture for Browser Compatibility. The teams across Aditi Technologies did use this solution and it evolved gradually. It is the 'go to' test solution and approach to test and automate for web application's browser compatibility, strategically.
Those were the days, where the browsers and web development did not adhere to standards and guidelines. As a consequence, the web pages exhibited problems and unexpected [intermittent] behaviors on major browsers and its versions.
I understand and aware, that, the browser compatibility behavior can be a GUI difference to a functional blocker. Further, it can expand to the web page's performance behavior to accessibility and security differences. I have witnessed all this when testing for the web application and its browser compatibility, then.
I cannot forget the versions of Internet Explorer crashing while another did not when using the web pages.
Maybe, on reading this, you are thinking of me as an old tester. Is it so?
2025 and Browser Compatibility
I'm curious to know and understand from you. So, I ask this question to you.
Did you experience and report the browser compatibility behaviors recently? If so, what is that?
Please do not share the project and tech details.
Requesting you to share what behavior did you notice as part of the browser compatibility and which quality criteria of the web page is impacted.
I'm one ping away on Google Hangout and on an email. Please do share! This will help me to contribute back to the Software Engineering and Testing community.
The web standards model:
ReplyDeletehttps://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Web_standards/The_web_standards_model#brief_history_of_the_web
A couple of months ago, I tried "Chrome For Testing," which was said to be a browser specifically designed for automation purposes. So on MacBook, I was unable to run it as every time I tried to run my script, it was blocked and termed as malware. I manually tried to allow it from settings, but still I couldn't succeed. Later I got to know that macOS usually blocks unsigned apps or apps that are not from identified developers, so maybe that was the reason it was getting flagged.
ReplyDeleteLater on, I tried with the same script on a Windows laptop, and there too, I struggled with the "Chrome For Testing" browser despite using the latest release. After so much struggle, I ran the same script using the usual way of launching a browser for automation. So that was one issue I faced with the browser not being compatible or maybe some path-level setup was required which wasn’t very clear.
Along with that, usually whenever a new version of Selenium is launched, if I'm using chrome exe file then it needs to be updated, else the script may fail. Actually, it’s not Selenium that causes it to fail directly but the ChromeDriver and Chrome browser versions need to match properly, else they throw version mismatch errors.
If I'm launching chrome using chromedrivermanager().install() then things are being handled pretty much smoothly. It automatically downloads the compatible ChromeDriver based on the current browser version, so I don't have to worry about updating drivers manually every time.
Hello Ujjwal,
DeleteHow are you doing?
I understand what you are saying. I read it from different perspectives to feel the experience you are having.
1. Chrome for Testing - the unsigned install exe file
Yes, this will be unsigned. And, may be that is right move to keep it so. Google distributes or releases the regular Google Chrome for respective OS on main line with a version and signed. This is recognized by most OS as it is signed exe file.
When an exe file is not signed, the OS warns and few blocks such files as a precaution.
And, do we need Chrome for Testing version for automation? So far, in my work, I have not come across a need for it unless we are building browser specific application that uses internal of a browser. In such case, the version of a browser matters. For the usual website navigational automation, the regular Chrome browser will suffice.
But, let me know why you picked "Chrome for Testing" in specific and particular for automation. Knowing this is important for me to understand the problem you are trying to solve.
2. Selenium WebDriver and Chrome Driver
Yes, we have the pain point you mentioned on the compatibility between Chrome browser and Chrome Driver.
The latest version of Selenium 4.x, solves this. Prior to this, WebDriverIO helped to solve this. Now, there is no need for using WebDriverIO. Selenium 4.x address this compatibility matching and getting the right version of ChromeDriver.
If you are experiencing something different though using Selenium 4.x, let me know. We will debug it.
Ujjwal,
DeleteOn Windows,
1. Select the install exe file of Chrome for Testing.
2. Right click and go the Properties -> General.
3. Select the Unblock option for Security.
This should let you install.
But, for this, you should be having admin privilege on the machine, I see.
Something similar should be available on MacOS as well.
Such option will be kept available with admin privilege user login, to enable the developer to install or configure the unsigned apps.
Ujjwal,
DeleteI can see what you are thinking when you said, "Browser Compatibility". And, it is right in the way and perspective you are looking at it. That is one of the perspectives from present stand in your practice.
Thanks for sharing this perspective.
I agree that with new selenium driver versions, the compatibility issue is resolved very much, and instead of using chromedriver.exe
ReplyDeleteI prefer to use following line of code and chrome is automatically launched :
chrome_option = Options()
chrome_option.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_option)
driver.maximize_window()
For this question: " why you picked "Chrome for Testing" in specific and particular for automation. Knowing this is important for me to understand the problem you are trying to solve."
It was more or less influenced by the social media trend, as at those moments I saw many posts on linkedin and youtube video, talking about this browser. So out of curiosity I also thought to use this but somewhat disappointed with it. At the end this choice was just because it was in trending and nothing as such any specific reasons.