css - 提取 :after using XPath 中的内容

标签 css xpath selenium-webdriver pseudo-element

我正在尝试获取 CSS 属性“content”的值:

WebElement plusOrMinusSign = currentEntityTypeLevel1.findElement(
    By.xpath("i[@class='tree-branch-head']::after"));
System.out.println(plusOrMinusSign.getCssValue("content"));

但是,我得到一个错误:字符串 'i[@class='tree-branch-head']::after' 不是有效的 XPath 表达式。

似乎“::after”没有被识别。

HTML:

<i class="tree-branch-head" ng-class="iBranchClass()" ng-click="selectNodeHead(node)">::after
</i>

CSS:

i:after {
    content: "-";
}

知道如何获取“内容”的值吗?

最佳答案

您正在使用 By.xpathi[@class='tree-branch-head']::after 不是有效的 XPath,它是一个混合XPath 符号 (i[@class='tree-branch-head']) 和 CSS (:after)。

您应该使用 By.cssSelector 和一个有效的 CSS 选择器,例如 i.tree-branch-head:after。如果 Selenium 接受伪元素,这将起作用,但它不接受。

要解决此问题,您可以使用 Chromium,它会生成额外的假元素 ::after::before,或者使用 Javascript 提取器,如中所述https://stackoverflow.com/a/28265738/449288 .

关于css - 提取 :after using XPath 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40885637/

相关文章:

CSS - 如何选择表单元素的第 n 个子元素?

xslt - XPath表达式以选择不是某个特定元素的所有子元素

java - 相对 Xpath 在 Maven TestNg 中不起作用,但绝对路径有效

xml - 带有 fn 前缀的 XPath 函数 URL 不起作用

html - 为什么这个 xpath 找不到所需的元素?

java - 如何使用 Selenium 处理 Windows 身份验证

python - Firefox 在使用 Selenium-Webdriver 时看到 PhantomJS 看不到的元素

css - border-image > 内容后面的半透明 png

jquery - 在移动 safari 中滚动动画

html - 如何防止连接波斯语字符?