Selenium 4 CDP Java 8网络请求和响应



我试图使用selenium 4和CDP开发工具在Chrome浏览器中捕获网络请求和响应,但出现以下错误:

方法enable(Optional.wescast((、Optional.wascast((和Optional.wiscast(((对于类型Network是未定义的

方法requestWillBeSent((对于类型Network是未定义的

ChromeDriver driver = new ChromeDriver();
driver.manage().window().maximize();
chromeDevTools = ((HasDevTools) driver).getDevTools();
chromeDevTools.createSession();
chromeDevTools.send(Network.enable(
Optional.absent(),
Optional.absent(),
Optional.absent()));
chromeDevTools.addListener(Network.requestWillBeSent(),
request ->{
System.out.println("Request URL:"+request.getRequest().getUrl());
System.out.println("Request Method:"+request.getRequest().getMethod());
});

pom.xml

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v104</artifactId>
<version>4.4.0</version>
</dependency>

我希望为时已晚,您的问题已经解决。发布解决方案,以防其他人遇到同样的问题。您需要通过Optional.empty()而不是Optional.absent()

WebDriverManager.chromedriver().setup();
ChromeDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
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());
System.out.println("Request Method:"+request.getRequest().getMethod());
System.out.println("Request Method:"+request.getRequest().getHeaders().toJson());
});

最新更新