The extension disables Google reCAPTCHA by providing a simple hashed value thru a cookie
Using composer:
composer2 require rocketweb/magento-captcha-bypass
Once installed, you need to configure the extension in Stores -> Settings -> Configuration then open Security (tab) -> Google reCAPTCHA Storefront -> Bypass Storefront ReCaptcha and set a unique random string for Secret Key field:
First, you need to add the Secret Key to the cypress.config.js
you are using:
module.exports = defineConfig({
projectId: "xxxxxx",
e2e: {
...
secretKey: '-key-from-magento-configuration-',
....
Next, you need to add CryptoJs
library (or something similar that supports MD5):
npm install crypto-js
If all your packages are dev-dependencies, install this also as dependency:
npm install crypto-js --save-dev
Then include the crypto-js into at the top of the Cypress Test file:
# ... (other import lines) ...
import CryptoJS from 'crypto-js';
The final step is setting the Cookie needed to activate the Recaptcha Bypass
inside the it()
before any cy.visit(...)
is called:
it(['Can create an account', () => {
let secretKey = Cypress.config('secretKey')
let date = parseInt(new Date(). getTime()/1000);
let hash = CryptoJS.MD5(secretKey + '-' + date).toString(CryptoJS.enc.Hex)
cy.setCookie('__rbp', hash);
cy.visit(...)
...
})
This will add a cookie with specific hash that is than recognized by Magento code which disabled ReCaptcha on the page (if it's enabled that is).