我想使用selenium webdriver修改iframe的新内容。
注意: 我已经尝试过以下方法:
driver.swithTo().frame(frame_webelement);
driver.findElement(By.xxx).sendKeys("Mycontent");
我可以清除iframe内部的body内容(使用MyWebElement.clear())。
但我无法使用MywebElement.sendKeys()发送新内容。
所以我尝试使用下面给出的javascript:
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('iframeClass')[0].contentDocument.body.innerHTML='hello_text'");
}
我得到一个例外,因为“document.getElementsByClassName('iframeClass')[0]”未定义。但是同样的脚本可以和fireBug一起使用。
答案 0 :(得分:0)
//Switch to the iframe
driver.swithTo().frame(frame_webelement);
// then execute the JS
((JavascriptExecutor) driver).executeScript("document.body.innerHTML='hello_text'");
您的switchTo()
工作了,JavascriptExecutor
工作了。现在你只需要结合两种方法。您不需要在JS中选择iframe,因为您已经在switchTo()