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しておいた方が良さそうだ。





