javascript - Selenium 网络驱动程序 : Can't access element containing onclick and text attributes

标签 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')]"));  

为什么我找不到这个元素?
这是怎么回事?

最佳答案

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

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

然后找到<a>元素。

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

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

driver.switchTo().defaultContent();

关于javascript - Selenium 网络驱动程序 : Can't access element containing onclick and text attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32268967/

相关文章:

java - 加密Java代码转Go代码

java - JAXB:在特殊值的情况下忽略元素序列化(例如 `null` 或 `Double.NaN` )

python - 如何处理 python WebDriver 中的零星 BadStatusLine、CannotSendRequest 错误

javascript - JQuery 在表行中向 tds 添加编号

javascript - 在 addeventlistener 回调函数内发出 HTTPS 请求时,Electron 崩溃

javascript - 如何使用 angularjs 动态覆盖 CSS?

javascript - 如何在 IE8 中使用 javascript 替换换行符?

java - 替换 Java 中过时的 Hashtable 类

java - 为禁用的下拉选项创建定位器并使用 selenium java 选择

selenium - 如何开始使用 Selenium 2?