[英]WebDriverException: tinyMCE is not defined in selenium web driver java
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">
<h1><span id="1">Article</span> <span id="2">Title</span></h1>
<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>
我不知道您是否解决了这个问题。 这是一些解决问题的想法,因为我没有使用tinyMCE
& Selenium
。
加载iframe时,这似乎是时间问题。 我正在考虑做一个事件侦听器类型的事情,而不是一个计时器,但是当我包装init函数时,它可以正常工作。 我在这里找到了这篇文章的提示:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.