Bird
Raised Fist0
Selenium Javatesting~5 mins

Network interception (CDP) in Selenium Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Network Interception using CDP in Selenium?
Network Interception with CDP (Chrome DevTools Protocol) allows Selenium tests to monitor, modify, or block network requests and responses during browser automation.
Click to reveal answer
beginner
Which Selenium class is used to access CDP commands for network interception?
The <code>DevTools</code> class is used to create a session and send CDP commands for network interception in Selenium.
Click to reveal answer
intermediate
How do you enable network interception in Selenium using CDP?
You enable network interception by creating a DevTools session and sending the Network.enable command to start listening to network events.
Click to reveal answer
intermediate
What is a common use case for network interception in automated tests?
Common uses include mocking API responses, blocking unwanted resources, and verifying network requests to improve test reliability and speed.
Click to reveal answer
beginner
True or False: Network interception with CDP can modify HTTP request headers before they are sent.
True. CDP allows modification of HTTP request headers, URLs, and even responses before they reach the browser or server.
Click to reveal answer
Which Selenium class do you use to start a CDP session for network interception?
AActions
BWebDriverWait
CChromeOptions
DDevTools
What command enables network events listening in CDP?
ANetwork.enable
BPage.load
CRuntime.evaluate
DNetwork.disable
Which of these is NOT a typical use of network interception in tests?
ABlocking ads or images
BChanging browser window size
CMocking API responses
DVerifying request headers
Can network interception modify HTTP responses before the browser receives them?
AYes
BNo
COnly headers can be modified
DOnly request URLs can be modified
Which browser must be used to support Selenium CDP network interception?
ASafari
BFirefox
CChrome or Chromium-based browsers
DInternet Explorer
Explain how to set up network interception using Selenium and CDP in Java.
Think about starting a DevTools session and enabling network domain.
You got /4 concepts.
    Describe three practical scenarios where network interception helps improve automated tests.
    Consider how controlling network traffic can make tests faster and more reliable.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using Network Interception with Selenium DevTools Protocol (CDP)?
      easy
      A. To replace Selenium WebDriver with a faster browser engine
      B. To speed up test execution by skipping UI rendering
      C. To monitor and control network requests and responses during tests
      D. To automatically generate test data from network traffic

      Solution

      1. Step 1: Understand Network Interception

        Network interception allows tests to watch and manipulate network traffic between the browser and server.
      2. Step 2: Identify the purpose in Selenium CDP context

        Selenium's DevTools Protocol integration enables listening to and controlling network events during tests.
      3. Final Answer:

        To monitor and control network requests and responses during tests -> Option C
      4. Quick Check:

        Network interception = monitor and control traffic [OK]
      Hint: Network interception means watching and controlling web traffic [OK]
      Common Mistakes:
      • Thinking it speeds up tests by skipping UI
      • Confusing it with test data generation
      • Assuming it replaces WebDriver
      2. Which Java code snippet correctly creates a DevTools session to enable network interception in Selenium 4+?
      easy
      A. DevTools devTools = driver.getDevTools(); devTools.startSession(); Network.enable();
      B. DevTools devTools = new DevTools(); devTools.startSession(); devTools.enableNetwork();
      C. DevTools devTools = driver.createDevTools(); devTools.start(); Network.enable();
      D. DevTools devTools = driver.getDevTools(); devTools.createSession(); devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));

      Solution

      1. Step 1: Check correct DevTools session creation

        In Selenium 4+, use driver.getDevTools() and then createSession() to start.
      2. Step 2: Verify enabling network interception

        Use devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())) to enable network events.
      3. Final Answer:

        DevTools devTools = driver.getDevTools(); devTools.createSession(); devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); -> Option D
      4. Quick Check:

        Use getDevTools(), createSession(), then send Network.enable [OK]
      Hint: Use driver.getDevTools() then createSession() before enabling network [OK]
      Common Mistakes:
      • Trying to instantiate DevTools with new keyword
      • Calling Network.enable() without devTools.send()
      • Missing createSession() call
      3. Given the following code snippet, what will be printed when a network request is intercepted?
      DevTools devTools = driver.getDevTools();
      devTools.createSession();
      devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));
      devTools.addListener(Network.requestWillBeSent(), request -> {
          System.out.println("Request URL: " + request.getRequest().getUrl());
      });
      // Browser navigates to https://example.com
      medium
      A. Request URL: https://example.com/
      B. Request URL: null
      C. No output because listener is not added correctly
      D. Compilation error due to missing imports

      Solution

      1. Step 1: Understand listener setup

        The listener is added to Network.requestWillBeSent event, printing the URL of each request.
      2. Step 2: Predict output on navigating to example.com

        When browser navigates, a request is sent to https://example.com/, triggering the listener and printing the URL.
      3. Final Answer:

        Request URL: https://example.com/ -> Option A
      4. Quick Check:

        Listener prints request URL on navigation [OK]
      Hint: Listener prints URL of each request sent during navigation [OK]
      Common Mistakes:
      • Assuming listener won't trigger without explicit start
      • Expecting null URL in request
      • Thinking listener setup is incorrect
      4. Identify the error in this Selenium Java code snippet for blocking image requests using CDP:
      DevTools devTools = driver.getDevTools();
      devTools.createSession();
      devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));
      devTools.addListener(Network.requestWillBeSent(), request -> {
          if(request.getRequest().getUrl().endsWith(".png")) {
              devTools.send(Network.setBlockedURLs(List.of(request.getRequest().getUrl())));
          }
      });
      medium
      A. Calling setBlockedURLs inside the listener causes repeated blocking calls
      B. Missing call to devTools.createSession() before enabling network
      C. Using endsWith(".png") is invalid for URL filtering
      D. Network.enable() should not be called with Optional.empty()

      Solution

      1. Step 1: Analyze listener behavior

        The listener calls setBlockedURLs every time a request ends with .png, causing repeated calls.
      2. Step 2: Understand correct usage of setBlockedURLs

        setBlockedURLs should be called once with all URLs to block, not repeatedly inside the listener.
      3. Final Answer:

        Calling setBlockedURLs inside the listener causes repeated blocking calls -> Option A
      4. Quick Check:

        setBlockedURLs called repeatedly inside listener is wrong [OK]
      Hint: Call setBlockedURLs once, not inside each request event [OK]
      Common Mistakes:
      • Calling setBlockedURLs repeatedly inside listener
      • Forgetting to create session before enabling network
      • Misusing string methods for URL filtering
      5. You want to modify the response body of a JSON API call during a Selenium test using CDP. Which approach correctly achieves this?
      hard
      A. Use Network.requestWillBeSent to change the request URL to a local JSON file
      B. Enable Network.requestIntercepted event, fetch response body, modify it, then use Network.continueInterceptedRequest with modified body
      C. Call Network.setBlockedURLs to block the API call and serve a local file instead
      D. Modify the DOM after page load to replace JSON data

      Solution

      1. Step 1: Understand response modification with CDP

        To modify a response, intercept it, get the body, change it, and continue with the new content.
      2. Step 2: Identify correct event and method usage

        Use Network.requestIntercepted to detect response, fetch body, then Network.continueInterceptedRequest to send modified response.
      3. Final Answer:

        Enable Network.requestIntercepted event, fetch response body, modify it, then use Network.continueInterceptedRequest with modified body -> Option B
      4. Quick Check:

        Modify response by intercepting and continuing with new body [OK]
      Hint: Intercept response, modify body, then continue intercepted request [OK]
      Common Mistakes:
      • Trying to modify request instead of response
      • Blocking URL instead of modifying response
      • Changing DOM instead of network response
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard