在 Selenium 中,是否有任何带有“contains”的 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")
但这对我不起作用。
有什么选择吗?
对于那些现在正在寻找解决方案的人来说,有一个合适的解决方案。在 css 中,我们现在可以搜索一个值,如下例所示:
By.cssSelector("button[id*='btn_enter'])
我的情况下的按钮识别看起来是这样的:
<button id="btn_enter_" type="submit" ...>
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']"));