SOY CMSでは、ラベルブロックの設定あたりでiframeを開いて、
iframe内でリダイレクトしながら設定を進める画面がある。
iframeは以前にTinyMCEのところで操作方法を調べたので、
iframe一ページ分であればなんとかなったけれども、
iframe内でリダイレクトがあると、2枚目のページで指定した要素が見つからないというエラーに遭遇する。
なんでだろうと試行錯誤試してみたら、
リダイレクトされる度にsleepの処理を入れるとエラーなく動作するようになった。
実際に行った方法を記載すると
$element = $driver->switchTo()->frame(WebDriverBy::id("entry_content_ifr"))->switchTo()->activeElement(); //submit等のリダイレクトに関する処理 sleep(3); //2ページ目で行いたい処理を記述する //TinyMCEのiframeから離れる $driver->switchTo()->defaultContent();
どうやら、Seleniumはiframe内の変更の有無までは認識出来ないらしい。
iframeに関わる処理は都度sleepしておいた方が良さそうだ。