无法使用Xpath查找元素

时间:2015-07-20 07:50:44

标签: java selenium xpath selenium-webdriver

单击以下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异常。

7 个答案:

答案 0 :(得分:1)

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

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

  

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

答案 1 :(得分:1)

绝对xpath始终以正斜杠&#39; /&#39;开头。我认为你使用了绝对的xpath,要么你错过了&#39; /&#39;或者你在这里引用错了。请验证它。通常绝对xpath看起来像/ html / body / form / div [3] / div [2] / div [1] / div [2] / input

答案 2 :(得分:1)

试试这个xpath:

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

答案 3 :(得分:1)

对不起伙计,问题在于iframe。现在我通过切换到iframe然后单击事件找到了解决方案。

driver.switchTo()帧( “rightMenu”); driver.findElement(By.xpath( “HTML /体/格[1] / DIV [2] / DIV / A”))点击();

答案 4 :(得分:0)

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

  • 选择&#34; a&#34;元素
  • 在第二个div元素
  • 在第一个div元素
  • 在body元素
  • 那是在html元素

所以检查一下&#34; a&#34;检查Xpath表达式的元素。

答案 5 :(得分:0)

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

试一下。

通过哪种方法寻找元素?

@FindBy (how = How.XPATH)

driver.findElement(By.xpath());

有时@FindBy表示法并不适合使用Xpath。

答案 6 :(得分:0)

尝试使用以下xpath

//一个[含有(文本(), '添加')]