Selenium WebDriver (java) 可以与浏览器的检查工具元素选择器交互吗?
Posted
技术标签:
【中文标题】Selenium WebDriver (java) 可以与浏览器的检查工具元素选择器交互吗?【英文标题】:Can Selenium WebDriver (java) interact with the Browser's inspect tool element selector? 【发布时间】: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 【参考方案1】:部分是。使用selenium-webdriver,您很快就能使用Java 客户端与google-chrome-devtools API 交互。
Chrome DevTools Protocol 的集成仍处于WIP(正在进行中),@AdiOhana 最近为Network 和Performance 域提供了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
【讨论】:
以上是关于Selenium WebDriver (java) 可以与浏览器的检查工具元素选择器交互吗?的主要内容,如果未能解决你的问题,请参考以下文章
[Selenium+Java] Verify Tooltip Using Selenium WebDriver
零基础Selenium:Webdriver图文入门教程java篇(附相关包下载)
如何使用 Java 在 selenium webdriver 中打开新选项卡,或者如何使用 selenium webdriver 使用动作类在 selenium 中按 ctrl + T [重复]
java+selenium webdriver怎么实现数据参数化
无法使用Selenium和Java 11导入org.openqa.selenium.WebDriver
[Selenium+Java] Listeners and their use in Selenium WebDriver