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

时间:2015-07-01 19:09:53

标签: jquery selenium tinymce

我正在尝试使用 SELENIUM TinyMCE 添加文字。我已经能够使用以下代码添加文本:

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

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

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

那么如何使用 javascript jQuery 点击 TinyMCE

1 个答案:

答案 0 :(得分:1)

我的答案来自this post @SiKing指出的。

res <- RcppRoll::roll_mean(as.matrix(y), 3, na.rm=T)
colnames(res) <- colnames(y)
res
#     V1 V2 V3 V4 V5 V6 V7 V8   V9
#[1,] 16 17 18 19 20 21 22 23 16.5
#[2,] 31 32 33 34 35 36 37 38 39.0

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();只是escapeElementCss之外的一个元素。我选择了标题栏,因为它只是一个没有任何按钮的div,以避免点击可能产生事件的元素。

事实上,切换回DefaultContent会将焦点拉离编辑器。所以我只是客户端编辑器之外的元素。这迫使编辑失去焦点,更新成功。