如何检查网页元素是否包含伪元素。 Java

How to check if web element contains pseudo element. Java

在我的 Java Selenium 自动化项目中,我必须了解一些 Web 元素是否包含伪元素。
我已经看到 this 个问题,那里的答案根本不起作用。
This 看起来更好,但是在我的情况下,我已经有了一个 Web 元素,我需要获取它的内容,而在该答案中 Java 脚本接收到一个定位器。
我绝对不熟悉 JavaScript 这就是我问的原因:
因此,给定一个 Selenium WebElement 元素。我怎么知道这个元素是否包含伪元素?
在 screenshot 上有一个带红点的元素 - ::after 伪元素,而其他元素没有这样的红点。
这是我从开发工具中得到的,作为包含 after 伪元素的元素的 outerHTML。我什至在那里看不到它,它只是类似于那里不包含伪元素的其他元素。

<div workspaceid="49426bdc-59fe-44ec-82ea-8f567407c04f" data-test-id="9B1qjz0kWcfO" class="list-item ListItem__ListItemComponent-bsdtqz-0 dgogUS RoleItem-sc-1n184cw-0 jyfJwu role-item"><p class="text-component Texts__GenericText-sc-1dju4ks-0 czkGYX name p">9B1qjz0kWcfO </p></div>

您可以使用 WebElement 作为参数而不是 JavascriptExecutor. Using getComputedStyle 中的定位器,您可以获得 pseudo-element 的所有 css 属性。在devtools中查看CSS,找到红点css 属性然后就可以查看了

JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;

// JavaScript to get any css property include pseudo-element. 
// Arguments is an array of parameters passed to the executeScript method (standart Selenium functionality)
String js = "return window.getComputedStyle(arguments[0], arguments[1]).getPropertyValue(arguments[2]);";

// Use WebElement instead of locator. 
// Property "content" is an example of property, you should check css and get the red dot
String cssProperty = (String) jsExecutor.executeScript(js, element, ":after", "content");

// Check for the red dot css property