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

时间:2010-06-08 19:58:10

标签: javascript integration-testing fckeditor selenium-ide

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

我认为这个问题有两个方面:首先,是否有人有针对这个问题的FCKeditor特定解决方案?其次,有没有人知道实现可以在Selenium IDE中进行测试的自定义Javascript函数的好方法?

1 个答案:

答案 0 :(得分:1)

我想出了一个解决方案。它涉及使用Selenium IDE的storeEval方法,storedVars变量和匿名函数。它还利用了activeElement的{​​{1}}属性。

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

FCKeditor

我故意将其格式化,因为这是它在Selenium IDE中显示的方式,而且我显然不太理想。

然后,稍后,当我真的想要设置FCKeditor字段的值时,我再次用javascript调用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;} 来调用函数作为参数,如下所示:

storeEval

这有效,但我希望有更好的方法。 Selenium RC会让这很容易吗?