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

时间:2016-10-31 19:41:30

标签: selenium xpath selenium-webdriver selenium-chromedriver

以下是我用来从日历中搜索日期的两个代码段,其中包含" From 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"中的例外情况org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"方法":" xpath","选择器":" / / table / tbody / tr / a [contains(text(),' 10月30日')]"}

代码段图片:code segment 请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

要解决的两件事(至少):

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

修正版:

//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();

答案 1 :(得分:1)

不要依赖日期。它不稳定,因为从日期到日期不是固定日期。每个记录都可能会发生变化。