【问题标题】:WebDriverException: tinyMCE is not defined in selenium web driver javaWebDriverException:tinyMCE 未在 selenium Web 驱动程序 java 中定义
【发布时间】:2015-04-10 09:44:54
【问题描述】:
driver.switchTo().frame("tinymce_iframe");    
String script="var editor=tinyMCE.get('tinymce_textarea');";    
JavascriptExecutor js=(JavascriptExecutor) driver;    
js.executeScript(script);    

我想执行这段 javascript 代码,但我收到了未定义 tinyMCE 的 WebDriverException。

<html>  
<script type="text/javascript" src="tinymce3.5.1/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>

      <script type="text/javascript">
       tinyMCE.init({
        theme : "advanced",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        mode : "exact",
        elements : "tinymce_textarea"
      });
     </script>  
      <body>

     <textarea cols="80" rows="10" id="tinymce_textarea" name="tinymce_textarea"> 

         &lt;h1&gt;<span id="1">Article</span> <span id="2">Title</span>&lt;/h1&gt;
         <p><span id="3">Here's</span> <span id="4">some</span> <span id="5">sample</span> <span id="6">text</span> <span id="7">Hello</span> <span id="8" >World.</span> </p>
           </textarea>
</body>
</html>

【问题讨论】:

  • 你能把你访问的 html 或 url 贴出来吗?
  • 是的,我发布了 html
  • 你的例外是org.openqa.selenium.WebDriverException: Error communicating with the remote browser吗?检查这篇文章 - code.google.com/p/selenium/issues/detail?id=3000.
  • 你想用那个java脚本实现什么?根据我的理解,您通过获取 textarea 元素来定义一个名为 editor 的对象。您能否发布完整的异常详细信息?
  • 异常是由于切换到tinymce iframe然后尝试执行javascript。

标签: java javascript selenium


【解决方案1】:

我不知道你是否解决了这个问题。这里有一些解决问题的想法,因为我没有使用tinyMCE & Selenium

这似乎是一个时间问题,而 iframe 正在加载。我正在研究做一个事件侦听器类型的东西而不是一个计时器,但是当我包装我的 init 函数时,它可以正常工作。我从这个post here 中找到了提示:

tinyMCE.execCommand('mceRemoveEditor', false, 'editorId');
setTimeout(function() {
    tinyMCE.init(myconfig);
}, 3000);

或者,如果您能够检查正确的编辑器元素,请尝试使用 setInterval()

var IntID = setInterval(function () { // Repeated check for Editor
    if (($('.tinymce_textarea').length) > 0) { // Editor element length
        tinyMCE.init({
            theme : "advanced",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            mode : "exact",
            elements : "tinymce_textarea"
        });
        clearInterval(IntID); // This will clear timer for editor check
    }
}, 10);

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2020-03-04
    • 2018-11-25
    • 2019-10-14
    • 2014-05-30
    • 2017-08-15
    相关资源
    最近更新 更多