【问题标题】:Can Selenium WebDriver (java) interact with the Browser's inspect tool element selector?Selenium WebDriver (java) 可以与浏览器的检查工具元素选择器交互吗?
【发布时间】:2019-12-15 11:28:49
【问题描述】:

通过使用 selenium,我可以访问位于检查选项卡中的浏览器元素选择器(Ctrl + Shift + C,在浏览器中)吗?

我想使用该选择器“指向”一个元素并让它在浏览器中突出显示。

例如,像这样简单的东西:

WebElement elem = driver.findElement(By.id("userName")); elem.pointer();

这将在浏览器中将元素显示为突出显示/选中,检查选项卡的工作方式相同。

【问题讨论】:

  • 这不太可能,因为驱动程序通常无法访问特定于浏览器的操作/UI。您可以将 CSS 注入到元素中以执行诸如在元素周围添加红色边框等操作。谷歌“selenium highlight element”,您会发现许多示例,例如 this
  • 据我所知,chrome的驱动中没有提供这样的api

标签: java selenium google-chrome-devtools web-inspector chrome-devtools-protocol


【解决方案1】:

部分。使用,您很快就能使用Java 客户端与 API 交互。

Chrome DevTools Protocol 的集成仍处于WIP(正在进行中),@AdiOhana 最近为NetworkPerformance 域提供了contributed,以便更好地面向用户的API。

Controlling Chrome Devtools with Selenium Webdriver@AdiOhana 的讨论中提到的示例用法如下:

    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
        }
    });

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


结尾

What is the difference between WebDriver and DevTool protocol

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多