3

我正在尝试使用 selenium2library 关键字(在 Plone 中)选择 TinyMCE 字段的文本。

我尝试使用鼠标事件(鼠标向下/向上/向上)、Javascript 和“双击元素”选择文本,但到目前为止没有任何效果。如果我设置调试器并手动选择文本,则以下代码有效:

  Go to  ${PLONE_URL}/++add++Document
  Input Text  name=form.widgets.IDublinCore.title  My Document
  Select frame  id=form.widgets.text_ifr
  Input text  id=content  Lorem Ipsum
  # Attempt with Javascript
  Execute Javascript  document.getElementById("content").select()
  # Attempt with Double Click
  Double Click Element  xpath=//body[@id='content']/p[1]
  Double Click Element  id=content
  # Attempt with Mouse Events
  Mouse Down  xpath=//body[@id='content']/p[contains(text(),'L')]
  Mouse Over  xpath=//body[@id='content']/p[contains(text(),'orem')]
  Mouse Up  xpath=//body[@id='content']/p[contains(text(),'Ipsum')]
  # When I set a debug statement here and select the text manually the test passes
  Unselect Frame
  Click Link  id=form.widgets.text_link
  Wait until page contains element  id=mce_31_ifr
  Select frame  id=mce_31_ifr
  Click Link  News
  ...

如果有人可以推荐哪种方法最有前途,那已经很有帮助了。

4

1 回答 1

2

这只是这里的一个JavaScript 问题的重新讨论。对于内容可编辑的元素,我认为 JavaScript 是要走的路。以下代码选择 TinyMCE 小部件的内容可编辑部分的整个主体。

Open Browser    http://www.tinymce.com/    gc
Select Frame    id=editMe_ifr
Input Text    id=tinymce    Lorem Ipsum
Execute Javascript    function selectElementContents(el) {var range = document.createRange(); range.selectNodeContents(el); var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range);} var el = document.getElementById("tinymce"); selectElementContents(el);
于 2013-06-28T16:57:15.767 回答