私は解決策を考え出しました。これには、Selenium IDEのstoreEval
メソッド、storedVars
変数、無名関数の使用が含まれます。また、のactiveElement
プロパティを利用しますiframe
。
基本的に、私が行うことはstoreEval
、javascriptを使用してメソッドを呼び出し、の特定の要素を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フィールドの値を設定したい場合は、次のようstoreEval
に、javascriptを使用して再度呼び出し、引数として関数を呼び出します。
storedVars["setFCKeditorField"].call(this, "SU_ats_subscription_configuration_model[subscription_reminder_message]", "Subscription Expiring Message.<br/>");
これは機能しますが、もっと良い方法があることを願っています。Selenium RCはこれを簡単にしますか?