1

私は、watin を使用して webapp の統合テストに取り組んでいます。webapp は、リッチテキスト コントロールの 1 つとして fckeditor を使用します。

これは、fckeditor を含む私の webapp のビューソースの html の一部です。

iframe id="ctl00_HeaderMain_txtSafetyNetDescription___Frame" src="/FCKEditor/editor/fckeditor.html?InstanceName=ctl00_HeaderMain_txtSafetyNetDescription&Toolbar=myApp" width="100%" height="200px" frameborder="no" scrolling="no" /iframe

watin スクリプトを使用すると、次のコードでフレーム オブジェクトを取得できます。

    Frame frame =  ie.Frame(Find.ById("ctl00_HeaderMain_txtSafetyNetDescription___Frame"))  ;

ここで、fckeditor にテキストを書き込みたいと思います。しかし、フレームであるため、fckeditorに書き込む方法がわかりません。誰かがこれについて私を助けてくれますか?

ありがとう。アイアンガー。

4

2 に答える 2

2

それはあなたを助けることができます〜

フレームframe=ie.Frame( "blogBody-EditingArea");

frame.ElementWithTag( "body"、Find.Any).SetAttributeValue( "innerText"、"前在的心情记录"+DateTime.Now);

于 2011-04-02T08:13:02.633 に答える
1

firefox の助けを借りて、fckeditor の watin テスト スクリプトの解決策を見つけることができました。ありがとうファイアフォックス。fck エディターでは、フレーム内にフレームがあります。つまり、内部フレームを公開しますが、フレームの innerhtml を公開しません。

FireFoxはdomツリーを明確に示しています。
Watin は、para の innerhtml を更新することを許可していません。ただし、RunScript というメソッドが公開されています (すばらしい)。JS を作成し、それをオブジェクトに対して実行できます。この場合は子フレームです。そして、それは問題を解決しました

フレーム frame = ie.Frame(Find.ById("ctl00_HeaderMain_txtSafetyNetDescription___Frame")) ; Frame ChildFrame = frame.Frame(Find.BySrc("javascript:void(0)")) ; Para para = ChildFrame.Para(Find.ByIndex(0));

// fck エディターは para を id しません – したがって、id を提供する必要があります para.SetAttributeValue("id", "fckpara"); string fckvalue = "Myfckeditor テキスト"; 文字列 js = " "; js = js + " document.getElementById('fckpara').innerHTML = '" + fckvalue + "' ;";

        ChildFrame.RunScript(js);

私は終了しました。みんな、ありがとう。

イエグナル。

于 2009-10-13T16:00:03.993 に答える