CSS选择器是否包含类似于xpath的文本



在Selenium中,是否有任何用于CSS选择器的选项;包含";类似于Xpath,其中我们用contains〔text((,….〕进行检查。

在下面的例子中,我给出了CSS和Xpath

<div class="abcjha">
<span>
<a class="test" ng-tracking="test1" data-tracking="abc">Daniel</a>
</span>
</div>
CSS : a[data-tracking='abc']
Xpath : //div/span/a[contains(text(),'Daniel')]

与上面的Xpath类似,CSS中是否有检查内部文本的选项?当我浏览它时,我看到了这个选项

==> css=button:contains("Log In")

但它对我不起作用。

有什么选择吗?

否,Selenium的css_selector仍然不支持:contains("text")方法。

您可以在中找到一些详细的讨论

  • selenium.com.mon.exceptions.InvalidSelectorException with"span:包含('string'(">
  • 在CSS Selector中使用文本查找链接不起作用
contains((伪类可能无法与本机不支持CSS选择器的浏览器一起使用。此外,它已从CSS3规范中弃用。

所以替代方案是使用innerText

WebElement cell = driver.findElement(By.cssSelector("td[innerText='Item 1']"));

textContent

WebElement cell = driver.findElement(By.cssSelector("td[textContent='Item 1']"));

最新更新