2013-03-15 105 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(); 
}