Java org.openqa.selenium.InvalidSelectorException:尝试查找元素时选择器无效

Java org.openqa.selenium.InvalidSelectorException:尝试查找元素时选择器无效,java,selenium-webdriver,xpath,css-selectors,xpath-1.0,Java,Selenium Webdriver,Xpath,Css Selectors,Xpath 1.0,“我的元素”显示为: <a class="main-item" href="#">Business Loans</a> 这将返回无效的元素定位器 //*[@id='main-nav']/ul/li[1]/a'] driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[1]/a[1]']")) 我正在尝试获取元素。欢迎使用SO。下面是简单的xpath //*[@id='main-nav]//a[@class='ma

“我的元素”显示为:

<a class="main-item" href="#">Business Loans</a>
这将返回无效的元素定位器

//*[@id='main-nav']/ul/li[1]/a']

driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[1]/a[1]']"))

我正在尝试获取元素。

欢迎使用SO。下面是简单的xpath

//*[@id='main-nav]//a[@class='main-item' and .='Business Loans']
如果你想使用你提到的,这里是正确的

driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[1]/a[1]"))

Try包含xpath中的函数,它可以提取与特定文本值匹配的所有元素

//a[contains(text(),'Business Loans')]
此错误消息

org.openqa.selenium.InvalidSelectorException: invalid selector
…表示您的
xpath
不是有效的

不能将单引号(即
或双引号(即
同时用于
By
值和属性值


解决方案 您可以使用以下任一选项:

  • CSS选择器:

  • xpath:


/a[1]]
org.openqa.selenium.InvalidSelectorException: invalid selector
WebElement element = driver.findElement(By.cssSelector("#main-nav a.main-item"));
WebElement element = driver.findElement(By.xpath("//a[@class='main-item' and text()='Business Loans']"));