如何通过 selenium Java API 读取 DOM 对象的属性?

How to read properties of DOM object via selenium Java API?

我需要通过 selenium Java API 读取 DOM 对象的一些属性。我将通过示例解释我的要求。

首先假设我想在 Chrome 开发人员工具中找到突出显示的 <g> 元素(如下所示)。我可以使用以下代码通过 Selenium Java API 轻松地做到这一点。

WebElement gElement = driver.findElement(By.xpath("//*[@data-id='node_grp_0_id52UVV33EHE7']"));

然后我想通过 Selenium Java API 读取这个 <g> 对象的几个属性。因此,我在 Chrome 开发人员工具中单击此 <g> 元素,然后在 Chrome 开发人员工具的右侧打开 Properties 视图(如下所示)为了找到各种属性的路径。找到路径后,我现在想通过 Selenium Java API 读取其中几个属性(例如 ariaChecked__data__.label),如下所示:

gElement.getAttribute("ariaChecked");
gElement.getAttribute("__data__.label");

上面提到的两行代码returns null.

以下代码也没有 return 所需的 属性 值:

element.getCssValue("ariaChecked");
element.getCssValue("__data__.label");

有谁知道如何通过 selenium Java API?

提前致谢!

我找到了一种解决方法,可以通过 Java 脚本读取 Web 元素的 属性,如下所示。此解决方法也支持嵌套属性:

public String getProperty(final String name) {
    return getJavascriptExecutor().executeScript("return arguments[0]." + name + ";", webElement).toString();
}

上面的方法可以调用如下:

String name = getProperty("name");

String label = getProperty("__data__.label"); // This is a nested property.