【发布时间】:2015-06-26 08:51:27
【问题描述】:
我正在尝试访问 iFrame
<iframe id="frame1" style="width: 100%; height: 100%; display: block;" tabindex="100">
<html>
<head xmlns="http://www.w3.org/1999/xhtml">
<body id="tiny1" contenteditable="true" onload="window.parent.get('frame1').onLoad.dispatch();">
<p/>
</body>
</html>
</iframe>
我想用 id=tinymce 将 sendKeys() 发送到正文。但是当我尝试 switchTo().frame 时,它不起作用。
我的 Java 代码:
public void enterArea(String object, String content){
String driverWindows = driver.toString();
driver.switchTo().frame(selenium.driver.findElement(By.xpath("//*[@id='frame1']")));
String driverIFrame = driver.toString();
WebElement contentTextArea = (new WebDriverWait(driver, 3))
.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='tiny1']/p")));
contentTextArea.sendKeys(content);
driver.switchTo().defaultContent();
}
driverWindows 和driverIFrame 2 个总是返回相同的字符串,这意味着web driver 没有切换,对吧?
您能帮我访问元素吗? 如果需要任何进一步的细节,请告诉我。 谢谢。
【问题讨论】:
-
这里 body 和 frame 是分开的,如果你想向 body 发送文本,为什么要切换到 frame 呢?
-
@HelpingHands:对不起,我的错字。我已经编辑了。
-
您是否尝试通过 ID 来识别 iframe?
-
@HelpingHands:是的,我试过了,driver.switchTo().frame("frame1");,但还是一样。
-
它应该可以工作...你调试代码了吗?
标签: javascript iframe selenium-webdriver automation