Source:Network.java
...55 Require.nonNull("Credentials", useTheseCredentials);56 authHandlers.put(whenThisMatches, useTheseCredentials);57 prepareToInterceptTraffic();58 }59 public OpaqueKey addRequestHandler(Routable routable) {60 Require.nonNull("Routable", routable);61 return addRequestHandler(routable::matches, routable::execute);62 }63 public OpaqueKey addRequestHandler(Predicate<HttpRequest> whenThisMatches, Function<HttpRequest, HttpResponse> returnThis) {64 Require.nonNull("Request predicate", whenThisMatches);65 Require.nonNull("Handler", returnThis);66 uriHandlers.put(whenThisMatches, returnThis);67 prepareToInterceptTraffic();68 return new OpaqueKey(whenThisMatches);69 }70 @SuppressWarnings("SuspiciousMethodCalls")71 public void removeRequestHandler(OpaqueKey key) {72 Require.nonNull("Key", key);73 uriHandlers.remove(key.getValue());74 }75 private void prepareToInterceptTraffic() {76 if (interceptingTraffic) {77 return;78 }79 devTools.send(disableNetworkCaching());80 devTools.addListener(81 authRequiredEvent(),82 authRequired -> {83 String origin = getUriFrom(authRequired);84 try {85 URI uri = new URI(origin);...
Source:NetworkInterceptor.java
...18import org.openqa.selenium.WebDriver;19import org.openqa.selenium.devtools.DevTools;20import org.openqa.selenium.devtools.HasDevTools;21import org.openqa.selenium.devtools.idealized.Network;22import org.openqa.selenium.devtools.idealized.OpaqueKey;23import org.openqa.selenium.internal.Require;24import org.openqa.selenium.remote.http.HttpResponse;25import org.openqa.selenium.remote.http.Route;26import java.io.Closeable;27import static org.openqa.selenium.remote.http.Contents.utf8String;28/**29 * Provides a mechanism for stubbing out responses to requests in drivers which30 * implement {@link HasDevTools}. Usage is done by specifying a {@link Route},31 * which will be checked for every request to see if that request should be32 * handled or not. Note that the URLs given to the {@code Route} will be fully33 * qualified.34 * <p>35 * Example usage:36 * <p>37 * <code>38 * Route route = Route.matching(req -> GET == req.getMethod() && req.getUri().endsWith("/example"))39 * .to(() -> req -> new HttpResponse().setContent(Contents.utf8String("Hello, World!")));40 *41 * try (NetworkInterceptor interceptor = new NetworkInterceptor(driver, route)) {42 * // Your code here.43 * }44 * </code>45 */46public class NetworkInterceptor implements Closeable {47 public static final HttpResponse PROCEED_WITH_REQUEST = new HttpResponse()48 .addHeader("Selenium-Interceptor", "Continue")49 .setContent(utf8String("Original request should proceed"));50 private final OpaqueKey key;51 private final Network<?, ?> network;52 public NetworkInterceptor(WebDriver driver, Route route) {53 if (!(driver instanceof HasDevTools)) {54 throw new IllegalArgumentException("WebDriver instance must implement HasDevTools");55 }56 Require.nonNull("Route", route);57 DevTools devTools = ((HasDevTools) driver).getDevTools();58 devTools.createSessionIfThereIsNotOne();59 network = devTools.getDomains().network();60 key = network.addRequestHandler(route);61 }62 @Override63 public void close() {64 network.removeRequestHandler(key);...
OpaqueKey
Using AI Code Generation
1import org.openqa.selenium.devtools.idealized.fetch.Fetch;2import org.openqa.selenium.devtools.idealized.fetch.model.HeaderEntry;3import org.openqa.selenium.devtools.idealized.fetch.model.RequestPattern;4import org.openqa.selenium.devtools.idealized.fetch.model.ResponsePattern;5import org.openqa.selenium.devtools.idealized.fetch.model.AuthChallengeResponse;6import org.openqa.selenium.devtools.idealized.fetch.model.RequestPaused;7import org.openqa.selenium.devtools.idealized.fetch.model.AuthChallenge;8import java.util.HashMap;9import java.util.Map;10import java.util.List;11import java.util.ArrayList;12public class TestFetch {13 public static void main(String[] args) throws Exception {14 try (ChromeDriver driver = new ChromeDriver()) {15 driver.getDevTools().send(Fetch.enable(Optional.empty(), Optional.empty(), Optional.empty()));16 driver.getDevTools().send(Fetch.setRequestInterception(Collections.singletonList(RequestPattern.builder().setUrlPattern("*").build())));17 driver.getDevTools().send(Fetch.setResponseInterception(Collections.singletonList(RequestPattern.builder().setUrlPattern("*").build())));18 driver.getDevTools().addListener(Fetch.requestPaused(), requestPaused -> {19 OpaqueKey requestId = requestPaused.getRequestId();20 String requestMethod = requestPaused.getRequest().getMethod();21 String requestUrl = requestPaused.getRequest().getUrl();22 List<HeaderEntry> requestHeaders = requestPaused.getRequest().getHeaders();23 String requestPostData = requestPaused.getRequest().getPostData();24 String requestResourceType = requestPaused.getResourceType();25 boolean requestIsNavigationRequest = requestPaused.getIsNavigationRequest();26 String requestFrameId = requestPaused.getFrameId();27 ResponsePattern responsePattern = ResponsePattern.builder()28 .setStatusCode(200)29 .setBody(Optional.of("Hello World!"))30 .setHeaders(Collections.singletonList(HeaderEntry.builder().setName("Content-Type").setValue("text/plain").build()))31 .build();32 driver.getDevTools().send(Fetch.continueRequest(requestId, Optional.empty(),
1import java.util.*;23class Primality{4 private static void printStats(int count, int n, boolean isPrime) {56 System.err.println( "Performed " + count + " checks, determined " + n7 + ( (isPrime) ? " is PRIME." : " is NOT PRIME." ) );8 }9 /**10 * Improved O( n^(1/2)) ) Algorithm11 * Checks if n is divisible by 2 or any odd number from 3 to sqrt(n).12 * The only way to improve on this is to check if n is divisible by 13 * all KNOWN PRIMES from 2 to sqrt(n).14 *15 * @param n An integer to be checked for primality.16 * @return true if n is prime, false if n is not prime.17 **/18 public static boolean primeBest(int n){19 int count = 0;20 // check lower boundaries on primality21 if( n == 2 ){ 22 printStats(++count, n, true);23 return true;24 } // 1 is not prime, even numbers > 2 are not prime25 else if( n == 1 || (n & 1) == 0){26 printStats(++count, n, false);27 return false;28 }2930 double sqrtN = Math.sqrt(n);31 // Check for primality using odd numbers from 3 to sqrt(n)32 for(int i = 3; i <= sqrtN; i += 2){33 count++;34 // n is not prime if it is evenly divisible by some 'i' in this range35 if( n % i == 0 ){ 36 printStats(++count, n, false);37 return false;38 }39 }40 // n is prime41 printStats(++count, n, true);42 return true;43 }4445 public static void main(String[] args) {46 Scanner scan = new Scanner(System.in);47 while(scan.hasNext()) {48 int n = scan.nextInt();49 primeBest(n);50 System.out.println();51 }52 scan.close();53 }54}55
1public class PrimalityTest2{3 public static void main(String[] args)4 {5 long current_local_time = System.currentTimeMillis();6 long long_number = 9223372036854775783L;7 long long_a;8 long long_b;9 if (long_number < 2)10 {11 System.out.println(long_number + " is not a prime number");12 }13 else if (long_number < 4)14 {15 System.out.println(long_number + " is a prime number");16 }17 else if (long_number % 2 == 0)18 {19 System.out.println(long_number + " is not a prime number and is divisible by 2");20 }21 else22 {23 long_a = (long) (Math.ceil(Math.sqrt(long_number)));24 terminate_loop:25 {26 for (long_b = 3; long_b <= long_a; long_b += 2)27 {28 if (long_number % long_b == 0)29 {30 System.out.println(long_number + " is not a prime number and is divisible by " + long_b);31 break terminate_loop;32 }33 }34 System.out.println(long_number + " is a prime number");35 }36 }37 System.out.println("elapsed time: " + (System.currentTimeMillis() - current_local_time) + " millisecond/s");38 }39}40
Selenium 4 Tutorial:
LambdaTest’s Selenium 4 tutorial is covering every aspects of Selenium 4 testing with examples and best practices. Here you will learn basics, such as how to upgrade from Selenium 3 to Selenium 4, to some advanced concepts, such as Relative locators and Selenium Grid 4 for Distributed testing. Also will learn new features of Selenium 4, such as capturing screenshots of specific elements, opening a new tab or window on the browser, and new protocol adoptions.
Chapters:
-
Upgrading From Selenium 3 To Selenium 4?: In this chapter, learn in detail how to update Selenium 3 to Selenium 4 for Java binding. Also, learn how to upgrade while using different build tools such as Maven or Gradle and get comprehensive guidance for upgrading Selenium.
-
What’s New In Selenium 4 & What’s Being Deprecated? : Get all information about new implementations in Selenium 4, such as W3S protocol adaption, Optimized Selenium Grid, and Enhanced Selenium IDE. Also, learn what is deprecated for Selenium 4, such as DesiredCapabilites and FindsBy methods, etc.
-
Selenium 4 With Python: Selenium supports all major languages, such as Python, C#, Ruby, and JavaScript. In this chapter, learn how to install Selenium 4 for Python and the features of Python in Selenium 4, such as Relative locators, Browser manipulation, and Chrom DevTool protocol.
-
Selenium 4 Is Now W3C Compliant: JSON Wireframe protocol is retiring from Selenium 4, and they are adopting W3C protocol to learn in detail about the advantages and impact of these changes.
-
How To Use Selenium 4 Relative Locator? : Selenium 4 came with new features such as Relative Locators that allow constructing locators with reference and easily located constructors nearby. Get to know its different use cases with examples.
-
Selenium Grid 4 Tutorial For Distributed Testing: Selenium Grid 4 allows you to perform tests over different browsers, OS, and device combinations. It also enables parallel execution browser testing, reads up on various features of Selenium Grid 4 and how to download it, and runs a test on Selenium Grid 4 with best practices.
-
Selenium Video Tutorials: Binge on video tutorials on Selenium by industry experts to get step-by-step direction from automating basic to complex test scenarios with Selenium.
Selenium 101 certifications:
LambdaTest also provides certification for Selenium testing to accelerate your career in Selenium automation testing.