SOY CMSでは、ラベルブロックの設定あたりでiframeを開いて、


labelblock_cnf_iframe


labelblock_cnf_iframe1


labelblock_cnf_iframe2


iframe内でリダイレクトしながら設定を進める画面がある。


iframeは以前にTinyMCEのところで操作方法を調べたので、

iframe一ページ分であればなんとかなったけれども、

php-webdriverでTinyMCEに値を挿入する


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