December 19th, 2022 by Adam Sandman
As we explained in our announcement for Rapise 7.3, Google is in the process of phasing out its older plugin system (called Manifest V2) in favor of a new plugin architecture (Manifest V3). This new architecture has higher security, but means that automated testing tools (like Rapise) will not be able to record or play tests using such plugins. This, together with some other breaking changes in Chrome, mean now is the time you need to switch browser libraries in Chrome.
Background
In December of 2020, the Google Chrome browser team made a major announcement - the release of Google Chrome Manifest 3. This new version of Chrome is designed to radically improve the security and safety of web browsing. Specifically:
With the introduction of Manifest V3, we will disallow remotely hosted code. This mechanism is used as an attack vector by bad actors to circumvent Google’s malware detection tools and poses a significant risk to user privacy and security.
However this new manifest version has an unfortunate side effect for the software testing industry, it will prevent the Chrome extensions used by many popular test automation tools such as Rapise, Ranorex, TestComplete, UFT and others from working.
What You Need to Do
Inside Rapise, you need to change the browser profile you use from Chrome HTML to Selenium - Chrome in test settings.
If you have standalone tests just switch profiles using the dropdown in top-right corner of the Rapise main window.
If you have a framework you may need to update the value of the g_browserLibrary variable either in Rapise, or in Spira, if you are using Spira to send the variable to Rapise during test execution:
g_browserLibrary = "Selenium - Chrome";
Next you will need to update your tests. In many cases there is nothing to update, but there are a few situations that need attention:
- Global.DoClick
- Global.DoSendKeys
To get all the advantages of Selenium-based testing (do your work while tests are running on a local machine, parallel execution, compatibility with browser farms) try to replace Global.DoClick and Global.DoSendKeys with other functions.
You can interact with a specific web element via:
- element.DoClick
- element.DoSendKeys
- element.DoSetText
- or use Actions via JavaScript
What about Other Browsers?
Although this change is specific to Google Chrome, we recommend that users switch to Selenium recording and playback for the other web browsers (Edge, Firefox, IE, etc.) as the plan is to eventually retire all of our old browser plugins and focus exclusively on the Selenium WebDriver based interface.