2014-03-19 98 views
0

我想使用selenium webdriver修改新內容的iframe的內容。使用selenium webdriver修改iframe內容

注: 我已經嘗試過這種如下方法:

driver.swithTo().frame(frame_webelement); 
driver.findElement(By.xxx).sendKeys("Mycontent"); 

,我能夠清除體內的內容是iframe中(使用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
//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()

之後