2015-08-28 65 views
0

HTML页我的工作包含以下元素:硒的webdriver:无法访问包含的onclick元素和文本属性

<a style="text-decoration:none; font-weight:normal;" href="javascript:void(0);" onclick="CreateNewServiceItemApproved();"> 
<img src="icons/ui/addnew.png"> 
<span style="color:#000">Add New Incident</span> 
</a> 

我需要点击就可以了,但接收

org.openqa.selenium.NoSuchElementException: Unable to locate element 

错误。
试着用下面的命令来找到它:

driver.findElement(By.xpath("a[@onclick='CreateNewServiceItemApproved()']")).click(); 
driver.findElement(By.xpath("//span[contains(text(),'Add New Incident')]")); 

为什么我不能找到这个元素?
这里有什么问题?

+1

尝试添加一个id由ID的元素和发现。 ifame中的元素是什么? –

+0

如何添加一个id到元素?我正在为此页面编写自动化测试代码,而不是创建页面本身。是的,它在一些iframe中。整个HTML页面包含多个iframe – Eliyahu

回答

2

由于该元素是iframe里面,你需要switch到IFRAME第一:

driver.switchTo().frame(driver.findElement(By.id("iframeId"))); 

,然后找到<a>元素。

Iframe可以通过id,xpath或通常的方法找到。

当处理东德,你可能需要切换到默认的内容:

driver.switchTo().defaultContent(); 
+0

您拯救了我的生命;)谢谢! – Eliyahu

+0

很高兴知道! ;) –