Rayrun

How do I prevent a cookie-consent script from running during tests in Playwright?

Answer

Sure, you can avoid running a cookie-consent script during your tests in Playwright. Here's how you can do it.

You can use the page.route() method to intercept and block any requests related to the cookie-consent script. Here's a TypeScript example:

import { chromium } from '@playwright/test';

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext();

  // Block cookie-consent script
  await context.route('**/cookie-consent.js', route => route.abort());

  const page = await context.newPage();
  
  // Now run your tests
  
  await browser.close();
})();

In this example, any network request that matches the pattern "**/cookie-consent.js" gets aborted.

Alternatively, you can modify the HTML of the page before it loads in Playwright. You can use methods like page.setContent() or page.evaluate() to manipulate the DOM and remove or disable any elements related to cookie consent scripts.

Here's an example using page.evaluate():

import { chromium } from '@playwright/test';

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();

  // Disable cookie-consent script
  await page.evaluate(() => {
    const consentScript = document.querySelector('script[src="cookie-consent.js"]');
    if (consentScript) {
      consentScript.remove();
    }
  });

  // Now run your tests

  await browser.close();
})();

In this example, the cookie-consent script element gets removed from the DOM if it exists.

Choose the approach that best fits your application's structure and requirements.

References

Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

Related Discord Threads

Related Questions

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.