我正在使用客户端java进行练习,以使用cssSelector方法检索具有特定Web元素的CSS属性的某些对象。 声明
driver.findElements(By.cssSelector(".item-result .content-main .block-opening"))
使用类“.item-result .content-main .block-opening”从页面返回所有元素(请参阅下面的我的块),所有内容都很好!
尽管如此,我只希望那些具有属性text-indent的值为-999em。要执行它,我首先使用
driver.findElements(By.cssSelector(".item-result .content-main .block-opening[text-indent]"))
检索具有text-indent css属性的所有元素但我意识到在我的css块中有text-indent属性时没有元素匹配。
HTML block
<html id="ng-app" data-ng-app="rwd" data-ng-controller="AppCtrl" lang="fr" class="ng-
scope">
<head>...</head>
<body>
...
<span class="block-opening icon-time-filled ng-scope" data-ng-if="bloc.openClosed ==
'O'">Ouvert</span>
...
</body>
</html>
CSS block
.item-result .content-main .block-opening {
width: 25px;
color: #a1a1a1;
text-indent: -999em;
}
我希望通过使用
找到我想要的确切内容driver.findElements(By.cssSelector(".item-result .content-main .block-opening[text-indent='-999em']"))
由于找不到与text-indent相关的元素,因此我被阻止查找具有-99em文本缩进的元素。
请提供任何帮助!
答案 0 :(得分:1)
也许是一个更长的路线,但你可以尝试使用适当的方法获取所有元素的列表并检查css属性。
List<Webelement> elements = driver.findElements(By.cssSelector(".item-result .content-main .block-opening"));
for (Webelement element : elements) {
if (element.getCssValue("text-indent").equals("-999em")) {
return element;
}
}
警告,我从未试图获得text-indent
值,因此我无法保证上述内容能够正常工作。
答案 1 :(得分:0)
您可以使用内部文本值
使用xpath找到该元素By.xpath("//span[text()='Ouvert']")