Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Selenium Webdriver控制Chrome开发工具_Java_Google Chrome_Selenium_Selenium Webdriver_Google Chrome Devtools - Fatal编程技术网

Java 使用Selenium Webdriver控制Chrome开发工具

Java 使用Selenium Webdriver控制Chrome开发工具,java,google-chrome,selenium,selenium-webdriver,google-chrome-devtools,Java,Google Chrome,Selenium,Selenium Webdriver,Google Chrome Devtools,我希望通过Selenium Webdriver访问/使用Chrome的devtools面板 具体来说,我想使用“WASP”chrome插件,它是通过devtools访问的。我已经将selenium设置为在包含WASP插件的情况下运行,并且我可以打开DevTools(使用sendKeys.F12),但是现在面板已经打开,我不知道如何实际使用它。有没有办法做到这一点 我发现最接近我的问题的是这个链接:,但这对我一点帮助都没有 另外,如果看起来这是不可能的(确实如此),有人能想出一个解决方法吗?在Se

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

具体来说,我想使用“WASP”chrome插件,它是通过devtools访问的。我已经将selenium设置为在包含WASP插件的情况下运行,并且我可以打开DevTools(使用sendKeys.F12),但是现在面板已经打开,我不知道如何实际使用它。有没有办法做到这一点

我发现最接近我的问题的是这个链接:,但这对我一点帮助都没有


另外,如果看起来这是不可能的(确实如此),有人能想出一个解决方法吗?

在Selenium 4 alpha中,有一种方法可以使用java客户端与DevTools API交互。您特别需要的是“探查器”域()

最近,我在selenium java中为更好的面向用户的API提供了“网络”和“性能”域

我相信“探查器”也将很快实施。当然,Java client中的所有域都有一个通用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
        }
    });
driver.getDevTools().createSession();
send(新命令(“Profiler.enable”,ImmutableMap.of());
send(新命令(“Profiler.start”,ImmutableMap.of());
//注册到探查器事件
driver.getDevTools().addListener(新事件(“Profiler.consoleProfileStarted”、consoleProfileStarted.class)、新使用者(){
@凌驾
公共无效接受(对象o){
//做点什么
}
});

在将探查器域添加到Selenium java客户端之前,您必须提供映射器。

WebDriver用于驱动浏览器并与网页交互。除了键盘快捷键之外,它不会控制开发工具。Chrome扩展也是一个“网页”,地址类似于
Chrome-extension://some_gibrish/some_name.html
和一些做某事的JS。您可以从开发人员工具(扩展扩展名>右键单击检查>…)监视实际URL,因此理论上您可以将该扩展名“注入”到页面中,并使其运行JS脚本。。。看起来需要做很多工作,而且每个扩展都非常具体。