我想使用Selenium 4拦截网络请求并将其保存到json文件

问题描述

我正在使用selenium来拦截网络请求,现在我编写了一个侦听并拦截请求的代码,但是我正在努力将所有请求写入json文件,这是我的代码

public class SeleniumFourFeaturesTest {
    WebDriver driver;
    DevTools tool;

    @BeforeClass
    public void startSession() {
        //Set Chrome Driver
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();

        //Set Dev-Tools and create a session
        tool = ((ChromeDriver)driver).getDevTools();
        tool.createSession();
    }

    @Test(enabled=false)
    public void test1() {
        driver.findElement(By.xpath("//div[@class='list-group']/a[1]")).click();
        driver.findElement(By.id("ap_email")).sendKeys("test123");
        driver.findElement(By.id("ap_password")).sendKeys("12345");

        driver.findElement(RelativeLocator.withTagName("input").below(By.id("ap_password"))).click();
    }

    @Test
    public void interceptRequestAndContinue() throws InterruptedException {

        //enable Network
        tool.send(Network.enable(Optional.empty(),Optional.empty(),Optional.empty()));

        //add listener to intercept request and continue
        tool.addListener(Network.requestIntercepted(),requestIntercepted -> tool.send(
                        Network.continueInterceptedRequest(requestIntercepted.getInterceptionId(),Optional.empty())));

        //set request interception only for css requests
        RequestPattern requestPattern = new RequestPattern("*.css",ResourceType.Stylesheet,InterceptionStage.HeadersReceived);
        tool.send(Network.setRequestInterception(ImmutableList.of(requestPattern)));

        driver.get("https://www.google.com");
        Thread.sleep(30000);

    }

}

我希望在代码末尾能够将请求写入json文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...