使用selenium webdriver修改iframe内容

时间:2014-03-19 10:37:28

标签: javascript selenium-webdriver webdriver

我想使用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一起使用。

1 个答案:

答案 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()

之后