2

我正在尝试在 IE9 中切换到 iframe,以便可以send_keys()切换到文本区域。当我切换时,我可以告诉 webdriver 认为它已切换(当我 print 时page_source,它是正确的)但光标仍在另一个文本字段(不是 TinyMCE)上闪烁,此时,如果我发送键,键会附加到另一个文本字段,而不是 TinyMCE。

所以我一直在尝试解决方法,如果我选择 tinyMCE iframe 和click(),光标在正确的位置,我可以发送密钥但我无法返回(切换回原始框架/窗口)提交输入.

有没有其他人在 IE9 中遇到过这个问题,有解决方法吗?

这适用于 Firefox 和 Chrome,但不适用于 IE9。

4

1 回答 1

3

我曾经遇到过这样的问题,由于 TinyMCE 会生成一些动态内容,因此解决它非常复杂。我最终操作 TinyMCE 编辑器的内容是通过直接调用 API page.execute_script并在 JavaScript 上完成所有操作。

我的 JS 代码示例是:

    jQuery('textarea.tinymce').tinymce().setContent('test text in editor');   
    jQuery('textarea.tinymce').tinymce().selection.select(jQuery('textarea.tinymce').tinymce().dom.select('p')[0]);
    jQuery('textarea.tinymce').tinymce().execCommand('Italic','true');
    jQuery('textarea.tinymce').tinymce().execCommand('Underline','true');  
    jQuery('textarea.tinymce').tinymce().execCommand('Bold','true');

第一行在 TinyMCE 的 textarea 中添加文本,第二行选择它(模拟用户光标选择),第三、第四和第五行只是操作控件。

.execCommand()对于激活不同的扩展特别有用。之后,我只是验证了我使用的表单字段设置了预期的 HTML 标记,并称之为一天。

我希望它有帮助!

于 2012-08-23T20:55:23.780 回答