Javascript 使用Selenium IDE与iframe元素交互的好方法是什么?

Javascript 使用Selenium IDE与iframe元素交互的好方法是什么?,javascript,integration-testing,fckeditor,selenium-ide,Javascript,Integration Testing,Fckeditor,Selenium Ide,我想测试一个在中使用的web应用程序。不幸的是,FCKeditor使用iframe,这很难在Selenium IDE中测试。基本上,我所要做的就是设置FCKeditor编辑区域的值,稍后再阅读,以查看该值是否正确提交 我想这个问题有两个方面:首先,有没有人对这个问题有FCKeditor特定的解决方案?第二,有人知道实现自定义Javascript函数的好方法吗?这些函数可以在Selenium IDE的测试中使用。我想出了一个解决方案。它涉及到使用Selenium IDE的storeEval方法、s

我想测试一个在中使用的web应用程序。不幸的是,FCKeditor使用iframe,这很难在Selenium IDE中测试。基本上,我所要做的就是设置FCKeditor编辑区域的值,稍后再阅读,以查看该值是否正确提交


我想这个问题有两个方面:首先,有没有人对这个问题有FCKeditor特定的解决方案?第二,有人知道实现自定义Javascript函数的好方法吗?这些函数可以在Selenium IDE的测试中使用。

我想出了一个解决方案。它涉及到使用Selenium IDE的
storeEval
方法、
storedVars
变量和匿名函数。它还利用了
iframe
s的
activeElement
属性

基本上,我所做的是使用javascript调用
storeEval
方法,将
storedVars
的某个元素设置为稍后将用作参数的函数。对于
FCKeditor
示例,参数为:

storedVars["setFCKeditorField"] = function (fieldName, value) {var iframe = this.browserbot.findElement("id="+fieldName+"___Frame"); var outerDocument = iframe.contentDocument; var innerDocument = outerDocument.activeElement.contentDocument; var textField = innerDocument.activeElement; textField.innerHTML = value;}
我故意这样格式化它,因为这是它在Selenium IDE中显示的方式,我认为它显然不太理想

然后,稍后,当我真正想要设置FCKeditor字段的值时,我再次使用javascript调用
storeEval
,以调用函数作为参数,如下所示:

storedVars["setFCKeditorField"].call(this, "SU_ats_subscription_configuration_model[subscription_reminder_message]", "Subscription Expiring Message.<br/>");
storedVars[“setFCKeditorField”]。调用(此为“订阅配置”模型[订阅提醒消息],“订阅过期消息”。
);
这是可行的,但我希望有更好的办法。Selenium RC会让这变得容易吗