selenium WebDriver能否拦截网络请求?

0md85ypi  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(829)

当使用WebDriver启动网页时,是否可以拦截网页的相关请求以获取请求负载?

7kjnsjlb

7kjnsjlb1#

Selenium4具有网络拦截能力,操纵网络流量对测试Web应用程序非常有用,因为它为我们提供了配置Web应用程序运行环境的无限可能性。阻止网络流量、模拟网络连接、模拟网络速度、添加标头等。以下代码显示了如何向HTTP请求添加标头,这在被测应用程序根据收到的标头公开过滤请求或公开特定功能时很有帮助。

@Test
public void addExtraHeaders() {
    ChromeDriver driver = new ChromeDriver();
    DevTools devTools = driver.getDevTools();
    devTools.createSession();
    driver.get("https://manytools.org/http-html-text/http-request-headers/");

        devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));

        Headers headers = new Headers(Collections.singletonMap("testing", "selenium"));
    devTools.send(Network.setExtraHTTPHeaders(headers));

        driver.get("https://manytools.org/http-html-text/http-request-headers/");
    driver.quit();
}

参考文献:https://saucelabs.com/resources/articles/bidirectional-apis

相关问题