如何在eclipse selenium项目中修复异常NoSuchELement?

时间:2016-11-26 10:50:00

标签: javascript xpath selenium-webdriver junit4

当在eclipse项目中尝试使用ie驱动程序在xven项目中找到x元素时,发生异常(找不到元素@ given xpath),此元素在iframe内部, 当检查所需的元素时,我发现它在以下结构中:

 <div id="idName">
   <div class="container">
     <div>
       <p class="v1">..............notice this repeated for many different href
         <a href= 
          <span class="v2".........notice this repeated for many different href
           <b>part of label</b>
               rest of label
               <br></br>

当我使用

webelement.findElement(By.xpath("//*[@id='idName']/div/div/p/a")).getAttribute("href"))

这会导致运行No Such Element Exception时出现异常 ,似乎我错过了亲戚XPath中的任何想法?

注意:我试图在查找元素之前将驱动程序切换到iframe,但它没有帮助,但仍然有异常。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

基于上面提供的HTML,最好的选择是在div'ID'之后选择第一个锚标记,假设ID在您正在处理的整个页面中是唯一的。

修改定位器,如下所示,试试看:

// * [@ id中= 'idName'] //以下::一

如果这会在您的页面中返回多个链接,那么您可以在末尾添加索引,如下所示:

(// * [@ id中= 'idName'] //以下:: A)[1]

答案 1 :(得分:0)

当我们想要获取它的元素属性存在于iframe中时,我们将首先切换到此帧: driver.switchTo()。frame(“frameid”)。findElement(By.xpath(“element xpath”))。getAttribute(“href”); 然后切换到默认内容以超出框架: 。driver.switchTo()defaultContent();