2010年03月27日

Seleniumでiframeの中を書き換える @ ウェブ

img1

Movable Typeのテンプレートを自動的に流し込む仕組みが作れないかと思って、Selenium IDEで試してみた。

当初、楽勝だろうと思っていたら、これが結構面倒だった。

まず問題になった部分。Movable Typeのテンプレートは、編集のページが単純なフォームではなかった。タイトルは普通にformのinputなのだが、テンプレートの本体を書き込む部分が、iframeに成っていて、その中のpreに書く形になっていた。この時点でXpathでの記述を断念。それっぽく書いてみたが、Seleniumで認識しない。こんな感じ。> //*[@id="text"]/html/body/pre

色々としたらべてみると、どうやらgetEvalを使って直接JavaScriptを記述すれば良いことが判明。

this.page().getDocument().getElementById('text').contentWindow.document.getElementsByTagName('pre')[0].innerHTML = 'ここにテキストを入力する。';

このように書けば良いことまで分かった。しかし、値の方に記述を入れてて、何度やっても動かない。正しくは対象のところに入力する必要があったみたい。

取り敢えずこれでiframeの中に自由に書き込みができるようになりました。あとは、一連の動作を記述するだけ。何となく先が見えてきたぞ。

参考にしたページを書いておきます。

Selenium再入門 :: handsOut.jp
>>関連リンク

SeleniumでJavaScriptを使う方法いろいろ(変数・関数などの利用)
>>関連リンク

閲覧数: 5381 / はてなブックマークusers

関連商品

amazon.co.jp・詳細ページへ

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト