使用Selenium Webdriver控制Chrome Devtools

Sar*_*rah 6 java selenium google-chrome google-chrome-devtools selenium-webdriver

我希望使用Selenium Webdriver访问/使用Chrome的devtools面板.

具体来说,我想使用"WASP"chrome插件,可以通过devtools访问.我已经将我的selenium设置为包含WASP插件,并且我可以打开DevTools(使用sendKeys.F12),但我不知道如何实际使用该面板,因为它是打开的.有办法吗?

我发现最接近我的问题的是这个链接:Chrome Dev Tools API和Selenium WebDriver,但这对我来说根本没用.

此外,如果看起来这是不可能的(它确实如此),任何人都可以想到一个解决方法吗?

Adi*_*ana 3

在 Selenium 4 alpha 中,有一种使用 java-client 与 DevTools API 交互的方法。您具体寻找的是“Profiler”域(https://chromedevtools.github.io/devtools-protocol/tot/Profiler

最近,我为 selenium java 中更好的面向用户的 API 贡献了“网络”和“性能”域 - https://github.com/SeleniumHQ/selenium/pull/7212

相信“Profiler”也将很快实现。当然,前段时间合并的Java客户端中有一个适用于所有域的通用API,您可以像这样使用它:

     driver.getDevTools().createSession();

    driver.getDevTools().send(new Command("Profiler.enable", ImmutableMap.of()));
    driver.getDevTools().send(new Command("Profiler.start", ImmutableMap.of()));

    //register to profiler events
    driver.getDevTools().addListener(new Event("Profiler.consoleProfileStarted", ConsoleProfileStarted.class), new Consumer<Object>() {
        @Override
        public void accept(Object o) {
            //do something
        }
    });
Run Code Online (Sandbox Code Playgroud)

在 Profiler 域添加到 Selenium java 客户端之前,您必须提供您的 Mapper。