2013-03-15 99 views
1

我有一個擴展方法發送文本到tinymce控件的一系列測試案例的Web應用程序,其中有許多tinymce控件貫穿始終。我的方法適用於FireFox和Chrome,但不適用於我們支持的其他瀏覽器。任何得到這個在IE工作的幫助,將不勝感激 - 下面是我的方法的代碼:使用Selenium發送文本到tinymce控件不工作IE9

public static void SendTextToMCE(this IWebDriver driver, string mceControl, string message) 
    { 
     driver.SwitchTo().Frame(mceControl); 
     driver.FindElement(By.Id("tinymce")).SendKeys(message); 
     driver.SwitchTo().Window(driver.CurrentWindowHandle); 
    } 
+0

你會得到什麼錯誤? – Arran 2013-03-15 15:01:11

+0

我沒有得到任何錯誤 - 控件中沒有文本(由消息變量攜帶)。我有另一種方法遵循相同的模式,但執行.clear()方法,在IE中正常工作,但當我嘗試向控件發送文本時,什麼也沒有 - 控件文本框保持空白。我注意到,光標似乎在頁面上的另一個文本框中,當它失敗,所以我想着焦點問題,但我認爲司機.SwitchTo應該照顧,並像我在原來的說 - 這工作得很好在Chrome和FireFox中(即文本被填充到控件中)。 – kdavej 2013-03-15 21:31:00

回答

0

如果你有一個 TinyMCE的元素在你的頁面,那麼你可以通過TinyMCE的的腳本您的短信:

var obj = ((IJavaScriptExecutor)webDriver).ExecuteScript("tinyMCE.activeEditor.setContent('" + text + "');"); 
0

我嘗試下面的代碼在C#&這對我來說很好。

public void main() 
{ 
    driver.SwitchTo().Frame("description-editor_ifr"); 
    IWebElement element = _WebDriver.FindElement(By.CssSelector("body")); 
    element.Clear(); 
    element.SendKeys("Hello"); 

    //Go back to main frame 
    driver.SwitchTo().ParentFrame(); 
}