【问题标题】:org.openqa.selenium.InvalidSelectorException: invalid selector while trying to locate an elementorg.openqa.selenium.InvalidSelectorException:尝试定位元素时选择器无效
【发布时间】:2019-03-26 02:33:31
【问题描述】:

我的元素显示为:

<a class="main-item" href="#">Business Loans</a>

xpath 是:

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

这将返回invalid element locator

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

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

我正在尝试获取元素。

【问题讨论】:

  • /a[1]']中删除'

标签: java selenium-webdriver xpath css-selectors xpath-1.0


【解决方案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]"))

【讨论】:

    【解决方案2】:

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

    //a[contains(text(),'Business Loans')]
    

    【讨论】:

      【解决方案3】:

      此错误消息...

      org.openqa.selenium.InvalidSelectorException: invalid selector
      

      ...暗示您的xpath 无效。

      您不能对By 值和属性使用单引号即'或双引号即" em> 值。


      解决方案

      您可以使用以下任一Locator Strategies

      • cssSelector

        WebElement element = driver.findElement(By.cssSelector("#main-nav a.main-item"));
        
      • xpath

        WebElement element = driver.findElement(By.xpath("//a[@class='main-item' and text()='Business Loans']"));
        

      【讨论】:

        猜你喜欢
        • 2018-09-29
        • 2018-10-04
        • 1970-01-01
        • 2019-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-01
        • 2020-10-16
        相关资源
        最近更新 更多