我想捕获 Chromedriver 窗口中生成的网络流量。
我发现可以使用 selenium 4.0 DevTools 实用程序来完成此操作,但我找不到如何操作或良好的文档。
https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/devtools/DevTools.html https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/devtools/DevTools.html
有最简单的方法吗?谢谢
使用 Selenium 4,您可以获得请求 URL 和响应 URL 等。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.3.1</version>
</dependency>
使用此代码片段,您将获得所有请求和响应。
@BeforeEach
public void setUp() {
WebDriverManager.chromedriver().setup();
this.chromeDriver = new ChromeDriver();
devTools = chromeDriver.getDevTools();
devTools.createSession();
}
@Test
public void getRequestsAndResponseUrls() throws InterruptedException {
devTools.send(new Command<>("Network.enable", ImmutableMap.of()));
;
devTools.addListener(Network.responseReceived(), l -> {
System.out.print("Response URL: ");
System.out.println(l.getResponse().getUrl());
});
devTools.addListener(Network.requestWillBeSent(), l -> {
System.out.print("Request URL: ");
System.out.println(l.getRequest().getUrl());
});
chromeDriver.get("https://edition.cnn.com/");
// While Thread.sleep you you will see requests and responses appearing in console.
Thread.sleep(10000);
}
Enjoy.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)