【问题标题】:Valid xpath has not worked有效的 xpath 无效
【发布时间】:2017-04-26 12:46:42
【问题描述】:

我正在使用,

driver.findElement(By.xpath("(//A[@href='/BLBP/custNewHome'][text()='New Customer']")).click();

并且我检查了路径值是否正确。

但它不起作用我现在该怎么办?

输出: 这是一个下拉菜单。

【问题讨论】:

  • 如果您的xpath 正确,请在给定步骤之前添加一些wait。否则共享html 代码
  • 无效有效。你是怎么检查的?
  • //*[contains(text(),'New Customer')] 这会起作用。如果您共享 html 代码以获得精确的xpath,那就太好了
  • 截图中的xpath和你代码中的xpath不同。正如@G_H 的回答所示。这是我们在某个时候都犯过的那种错字,但是下次您可能会从仔细检查您的代码中受益,并省去自己询问 SO 的麻烦。
  • 您的 xpath 已损坏。好像有多余的括号。

标签: java selenium selenium-webdriver


【解决方案1】:

driver.findElement(By.xpath("(//A[@href='/BLBP/custNewHome'][text()='New Customer']"))

仔细看,一一去掉括号。首先是findElement 方法调用。

By.xpath("(//A[@href='/BLBP/custNewHome'][text()='New Customer']")

接下来是xpath 调用。

"(//A[@href='/BLBP/custNewHome'][text()='New Customer']"

剩下的字符串就是你的 xpath 表达式。请注意它是如何在开头有一个左括号但在结尾没有右括号的。问题来了。

使用这个:

"//A[@href='/BLBP/custNewHome'][text()='New Customer']"

或者这个:

"(//A[@href='/BLBP/custNewHome'][text()='New Customer'])"

【讨论】:

  • @TanmoyRay 我看不出我能做出多完整的回答。你有一个括号,( 东西,在你的 xpath 的开头太多了。要么删除它,要么在末尾添加)
  • 我是新来的,我喜欢点击这个元素我现在能做什么?
  • @TanmoyRay 你能做的正是我所说的:修复你不正确的 xpath,它在语法上是无效的,因为它有不匹配的括号。这是一个左括号:( 这是一个右括号:)。您在 xpath 的开头有一个 open,但最后没有相应的 close。添加右括号,或删除左括号。请告诉我,我不必再详细说明,因为它是最基本的编程知识。
  • 谢谢,我把这些括号漏掉了 :( 对不起
猜你喜欢
  • 2012-06-05
  • 2021-11-23
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
相关资源
最近更新 更多