当在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,但它没有帮助,但仍然有异常。
非常感谢您的帮助。
答案 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();