【问题标题】:Selenium unable to switch to TinyMCE iframe in Internet Explorer 9Selenium 无法在 Internet Explorer 9 中切换到 TinyMCE iframe
【发布时间】:2012-08-19 10:27:47
【问题描述】:

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

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

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

这在 Firefox 和 Chrome 中有效,但在 IE9 中无效。

【问题讨论】:

    标签: python internet-explorer-9 tinymce selenium-webdriver


    【解决方案1】:

    我曾经遇到过这样的问题,由于 TinyMCE 会生成一些动态内容,因此解决它非常复杂。我最终操作 TinyMCE 编辑器的内容是通过 page.execute_script 直接调用 API 并在 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 标记,并称之为一天。

    希望对你有帮助!

    【讨论】:

    • 我试图避免使用 js 解决方案,但我认为没有任何办法。我实际上最终使用了: tinyMCE.activeEditor.setContent('

      text to input

      ');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2017-12-24
    • 2017-05-06
    • 1970-01-01
    • 2014-06-11
    相关资源
    最近更新 更多