New feature in Selenium 4 -
Intercept (Block) network traffic using CDT and Ignore Certificate Errors
When we inspect any ecommerce site, we can see that there are lot of jpg, gif, png images are loaded. We can ignore these images when we are running our automation test
The line#25 below will serve the purpose. We have to just mention the list of images extensions that we want to block/disable/intercept when we are running our test
Run this test, notice below that the images did not download
Let us now see how we can ignore SSL certificates error. Let us go to the site https://expired.badssl.com/
Notice below that we get SSL certificate error
Now, how can we ignore this error?
Before we see how to ignore this error, let us first run our below test
Notice below that we get the same error
Next, let us add below 2 lines. In line#23, we are simply setting the ‘setIgnoreCertificateErrors’ to be true
After this setting, let us again launch the same site
Run script, notice below that the certificate error is no more
Let us try out with another site https://self-signed.badssl.com/
Change below lines
Run
Code snippet (to block/intercept network traffic)
package sel4scripts;
import java.util.Optional;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.v85.network.Network;
import com.google.common.collect.ImmutableList;
import io.github.bonigarcia.wdm.WebDriverManager;
public class Network_Intercept {
public static void main(String[] args) {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
DevTools devTools = ((ChromeDriver) driver).getDevTools();
devTools.createSession();
//Start capturing network traffic
devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));
devTools.send(Network.setBlockedURLs(ImmutableList.of(".png", ".jpg", ".gif")));
driver.get("https://www.amazon.com/");
//Stop capturing network traffic
devTools.send(Network.disable());
}
}
Code snippet (to ignore SSL cert)
package sel4scripts;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.v85.security.Security;
import io.github.bonigarcia.wdm.WebDriverManager;
public class Ignore_SSLCert {
public static void main(String[] args) {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
DevTools devTools = ((ChromeDriver) driver).getDevTools();
devTools.createSession();
//Before ignoring SSL cert
driver.get("https://expired.badssl.com/");
devTools.send(Security.enable());
devTools.send(Security.setIgnoreCertificateErrors(true));
//After ignoring SSL cert
driver.get("https://expired.badssl.com/");
}
}
Thank you for reading!