Selenium Webdriver:无法访问包含onclick和文本属性的元素

时间:2015-08-28 10:32:32

标签: javascript java selenium selenium-webdriver

我正在使用的HTML页面包含以下元素:

<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 个答案:

答案 0 :(得分:2)

由于元素位于iframe内,您首先需要switch到iframe:

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

然后找到<a>元素。

可以通过idxpath或常用方法找到iframe。

处理时,您可能需要切换到默认内容:

driver.switchTo().defaultContent();