繁体   English   中英

无法使用Xpath查找元素

[英]Unable to find element using Xpath

单击以下HTML代码不起作用的元素。

a class="add" href="/travelPlan_revamp/addTravel.htm?travel_type=D">Add</a>

我正在使用下一个Xpath: html/body/div[1]/div[2]/div/a

但是No Such Element Found显示“ No Such Element Found异常。

首先,请确保Web元素不在iframe中。 如果是,那么您需要先切换到iframe,然后尝试点击元素。

另外,如果您捕获了错误的xpath,请在xpath下尝试:-

// a [@ class ='add'和。='Add']

绝对xpath始终以正斜杠“ /”开头。 我认为您使用了绝对的xpath,或者您错过了'/'或在这里引用了错误的内容。 请验证一下。 通常,绝对xpath类似于/ html / body / form / div [3] / div [2] / div [1] / div [2] / input

试试这个xpath:

 //a[contains(text(),'Add')];

抱歉,事情是在iframe中发生的。 现在,我已经找到了解决方案,方法是切换到iframe,然后单击一个事件。

driver.switchTo()。frame(“ rightMenu”); driver.findElement(By.xpath(“ html / body / div [1] / div [2] / div / a”))。click();

没有HTML,很难判断您的XPATH表达式是否正确。 您的XPATH表达式告诉:

  • 取一个“ a”元素
  • 在第二个div元素中
  • 在第一个div元素中
  • 在身体元素
  • 那是在html元素中

因此,检查是否存在用于检查Xpath表达式的“ a”元素。

//a[@class='add' and text()='Add'] 

试试那个。

您通过哪种方法寻找元素?

@FindBy (how = How.XPATH)

要么

driver.findElement(By.xpath());

有时@FindBy表示法不喜欢正确使用Xpaths。

在xpath下尝试一下

// a [包含(text(),'添加')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM