フレーム内にJavascriptExecuterしたいとき
selenium2はフレームも扱えるのが嬉しいところ。
ですがJavascriptExecuterでscriptを実行するには少々気をつけないとダメらしいです。
driver.executeScript("window.document.getElementById('target')なんとか")
では動いてくれません。
driver.executeScript("window.hoge.document.getElementById('target')なんとか")
とします。反対に今現在アクティブなフレームがhogeの場合は前者でも動きます。後者だと動かない?(だったと思う。)なので、フレームにscriptExecuteするときはdriver.switchTo()で、親フレームにスイッチしとおくとか前処理があったほうがより確実ってことにしています。
私はこれで散々ハマりました。今度生まれ変わったらフレームのないwebの世界に生きたいです。
参考にしたページ:
参考にしたページ: