Java org.openqa.selenium.InvalidElementStateException:无效元素状态:SyntaxError

Java org.openqa.selenium.InvalidElementStateException:无效元素状态:SyntaxError,java,selenium,css-selectors,Java,Selenium,Css Selectors,这是我的密码 driver.findElements(By.cssSelector(".main-menu a:contains(\"Access Menu\")")).size() 正在抛出异常 org.openqa.selenium.InvalidElementStateException: invalid element state: SyntaxError: DOM Exception 12 相同的css值在jquery中起作用,即$(“。主菜单a:包含(\'Access menu\

这是我的密码

driver.findElements(By.cssSelector(".main-menu a:contains(\"Access Menu\")")).size()
正在抛出异常

org.openqa.selenium.InvalidElementStateException: invalid element state: SyntaxError: DOM Exception 12

相同的css值在jquery中起作用,即
$(“。主菜单a:包含(\'Access menu\”)。size()

是否可以使用
的html

因为
DOM异常12
通常是html语法的一个问题。也许
jQuery
不关心,但是
WebDriver
抛出异常

编辑(干预后):

还有另一种解决方案,而不是使用CssSelector,xpath

"//*[@class='.main-menu']/a[contains(text(),'Access Menu')]"

告诉我发生了什么。

不,这是选择器语法的问题。第一部分不应该是
/*[@class='main-menu']
而不是
/*[@class='main-menu']
?另外,使用
/*[contains(@class,'main menu')]
会更好,因为我们没有DOM,我们不能保证
main menu
是唯一的类。
:contains()
不是CSS选择器。这个DOM异常是由
querySelectorAll()
引发的,我怀疑这就是WebDriver正在使用的,它完全绕过了jQuery。