【问题标题】:The given selector is either invalid or does not result in a WebElement给定的选择器无效或不会生成 WebElement
【发布时间】:2016-08-03 06:13:55
【问题描述】:
JavascriptExecutor jse = (JavascriptExecutor)driver;
WebElement element = driver.findElement(By.xpath(".//*[@id='reviewMetadata']/a']"));    
jse.executeScript("arguments [0],click();",element);

错误:线程“main”中的异常 org.openqa.selenium.InvalidSelectorException:给定的选择器 .//[@id='reviewMetadata']/a'] 无效或不会导致 一个网页元素。发生以下错误:InvalidSelectorError: 无法使用 xpath 表达式定位元素 .//[@id='reviewMetadata']/a'] 因为以下错误: SyntaxError: 该表达式不是合法表达式。

【问题讨论】:

  • 添加相关的html
  • .//*[@id='reviewMetadata']/a
  • @muthubala 我要的是 html,而不是你的 xpath
  • 您的错误信息与提供的代码不匹配。你需要花一些时间尝试一些事情,然后在你的问题中仔细记录你尝试了什么以及结果是什么。您还需要发布相关的 HTML 或理想情况下的页面链接。

标签: selenium firefox xpath


【解决方案1】:

您在a 元素之后使用了额外的引号。你应该使用

".//*[@id='reviewMetadata']/a]"

同时用点替换逗号并删除空格

"arguments [0],click();"

防止以下问题

【讨论】:

    【解决方案2】:
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    WebElement element = driver.findElement(By.xpath("//*[@id='reviewMetadata']/a]"));    
    jse.executeScript("arguments [0],click();",element);
    

    尝试替换这些行并运行。我猜你从FirePath 复制了xpath。不要忘记删除xpath 开头的句号。

    【讨论】:

    • 当我检查了所有的 xpath 都有 .符号。我应该删除程序中的所有句号
    • 在你的FF浏览器中添加Firefinder插件,在你的代码中使用它们之前验证xpathCSS selectors
    • 我的回答对你有帮助吗?? @muthubala
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多