当前位置: 首页 > 知识库问答 >
问题:

Java Selenium-使用xpath搜索未找到搜索的元素

仲孙凡
2023-03-14

这里有两个代码段,我正在使用它们从具有“From Date”和“To Date”的日历中搜索日期。

        webDriver.findElement(By.xpath("//table/tbody/tr/a[contains(text(),'October 30')]")).click();

        webDriver.findElement(By.xpath("//table/tbody/tr/a[contains(text(),'October 31')]")).click();

错误消息显示:线程“main”组织中出现异常。openqa。硒。NoSuchElementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//table/tbody/tr/a[包含(text(),'十月三十日')]”“}

共有2个答案

孟韬
2023-03-14

不要依赖日期。它是不稳定的,因为从日期到日期不是固定的日期。它可能会因每条记录而改变。

傅彬
2023-03-14

至少要解决两件事:

  • 元素不是tr的直接子元素,还有一个级别-td元素
  • 您需要检查标题属性,而不是文本()

固定版本:

//table/tbody/tr/td/a[contains(@title, 'October 30')]

或者,通过严格的平等检查:

//table/tbody/tr/td/a[@title = 'October 30']

或者,避免检查父母:

//a[@title = 'October 30']

或者,您也可以尝试使用更简洁的CSS选择器:

webDriver.findElement(By.cssSelector("a[title='October 30']")).click();
 类似资料:
  • 我正在尝试使用HTMLUnit(第一次)从特定页面中提取数据。具体来说,我目前正在尝试按ID(搜索框)抓取超文本标记语言元素。 但我遇到了: 在使用page.asXML()进行进一步检查时,该页面似乎没有正确加载,这就是它找不到项目的原因?我不确定为什么它没有为HTMLUnit加载。无需登录,您可以通过在浏览器中输入页面来自行查看页面。 非常感谢对调试此类HTMLUnit问题的任何帮助。

  • 9.5. 搜索元素 通过一步步访问每一个节点的方式遍历 XML 文档可能很乏味。如果你正在寻找些特别的东西,又恰恰它们深深埋入了你的 XML 文档,有个捷径让你可以快速找到它:getElementsByTagName 。 在这部分,将使用 binary.xml 语法文件,它看上去是这样的: 例 9.20. binary.xml <?xml version="1.0"?> <!DOCTYPE gra

  • 我一直在尝试使用Java的二分搜索方法在单词数组(一个词典)中搜索一个特定的字符串,然后确定该字符串是单词、前缀还是不是单词。如果返回的索引大于或等于零,则字符串为单词。如果返回的索引小于零,那么我必须确定它不是一个单词,还是一个前缀。

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 元搜索引擎 原搜索引擎是通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的搜索引擎来实现检索操作,是对分布于网络的多种检索工具的全局控制机制。 自己没搜索引擎,又想要大规模的数据源,怎么办?可以对百度搜索和谷歌搜索善加利用,以小搏大,站在巨人的肩膀上。有很多的应用场景可以很巧妙地借助百度搜索和谷歌搜索来实现,比如网站的新闻采集,比如技术、品牌的新闻跟踪,比如知识库的收集,比如人机问答系

  • 我在处理一个单词搜索问题。我正确地实现了dfs搜索,但在其他地方有一些琐碎的错误。