Javascript css选择器在浏览器中工作,但在Selenium中不工作

Javascript css选择器在浏览器中工作,但在Selenium中不工作,javascript,jquery,css,selenium,css-selectors,Javascript,Jquery,Css,Selenium,Css Selectors,我正在使用Selenium进行测试自动化,通常使用css选择器来定位元素。然而,最近我遇到了一个奇怪的问题。我注意到,在某些情况下,当我在浏览器控制台中进行测试时,css选择器工作正常。例如,要从许多按钮中选择一个特定按钮,我会: (1) $("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')") 但当我在Selenium中实际使用时,它会返回一个错误: Caused by: org.openqa.selenium

我正在使用Selenium进行测试自动化,通常使用css选择器来定位元素。然而,最近我遇到了一个奇怪的问题。我注意到,在某些情况下,当我在浏览器控制台中进行测试时,css选择器工作正常。例如,要从许多按钮中选择一个特定按钮,我会:

(1) $("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')")
但当我在Selenium中实际使用时,它会返回一个错误:

Caused by: org.openqa.selenium.InvalidSelectorException: The given selector div.v-app[id^='v-discussions'] .v-button-caption:contains('Add') is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified
我还使用
querySelector
尝试了该字符串,得到了“非法字符串”错误:

为什么会这样

附言

这是每个元素的外观:

<span class="v-button-caption">Add Comment</span>
添加注释
我们将努力:

WebElement element = driver.findElement(By.className("v-button-caption"));

我在Selenium Webdriver中使用它,对我来说效果很好

您使用的是纯WebDriverJ还是量角器?谢谢。@alecxe嗨,不,我用的是FirefoxDriver。谢谢。不带
:contains
@Tushar试试看,我不知道你的意思。如果我按原样尝试,但没有
:contains
,则它将不是有效的表达式
$(“div.v-app[id^='v-discussions'].v-button-caption('Add')”)
@EugeneS
:contains
是jQuery伪选择器,而不是javascript/CSS。请再次阅读问题。在我的例子中,我尝试查找的不是单个元素,而是从元素列表中选取一个特定元素。对于所有选择器,您可以使用此方法,此命令的作用与您所说的相同,它从页面上的一组元素中选取一个特定元素。。每个元素都有自己的特定和唯一的id,因此它被选中
WebElement element = driver.findElement(By.className("v-button-caption"));