JQuery: 如何将 FOCUS 设置为 TinyMCE 编辑器?

JQuery: How to set FOCUS to a TinyMCE editor?

我正在尝试使用 SELENIUMTinyMCE 添加文本。我已经能够使用此代码添加文本:

$('iframe').last().contents().find('body').text('401c484b-68e4-4bf2-a13d-2a564acddc04');

TinyMCE 编辑器正在显示 GUID。但是,当 Selenium 单击提交按钮时,出现错误:Please, enter a text.

我注意到,虽然 Selenium 是 运行,但我只需要(手动)单击 TinyMCE 然后,当单击更新按钮时,返回文本。

那么如何使用 javascriptjQuery[ 单击 TinyMCE?

我的回答来自this post @SiKing 指点我

public void EnterTextInTinyMCE(int n, string noteText, string escapeElementCss)
    {
        driver.SwitchTo().Frame(n - 1);
        IWebElement body = driver.FindElement(By.XPath("//body"));
        body.Click();
        Wait(3);

        IJavaScriptExecutor jse = driver as IJavaScriptExecutor;
        jse.ExecuteScript("arguments[0].innerHTML = '" + noteText + "'", body);

        driver.SwitchTo().DefaultContent();

        Wait(3); 
        ClickLinkByFullCSS(escapeElementCss); //--- I ADDED THIS LINE TO FORCE 
                                              //--- THE IFRAME ELEMENT TO LOSE FOCUS
    }

ClickLinkByFullCSS();只是我在基class中定义的一个方法,escapeElementCss只是iframe之外的一个元素。我选择标题栏是因为它只是一个 div,没有任何按钮,以避免单击可能产生事件的元素。

事实上,切换回 DefaultContent 会将焦点从编辑器上移开。所以我只是客户端到编辑器之外的一个元素。这迫使编辑器失去焦点并且更新成功。