ラボ > PHP:selenium(セレニウム)

selenium iframeの中を触りたい(switchTo())

いったんカレントをiframeに移してあげる必要アリ

作成日:2019-12-17, 更新日:2019-12-17

基本

表現が悩ましいので・・・カレントって言葉にしておく。

iframeにカレントを移す / Switching to another frame or iframe

$my_frame = $driver->findElement(WebDriverBy::id('my_frame'));
$driver->switchTo()->frame($my_frame);

iframeからカレントを戻す / Switching back to the main frame on the page

$driver->switchTo()->defaultContent();

サンプル

// ifrmae自体を取得
$my_frame = $driver->findElement(WebDriverBy::id('my_frame'));

// ifrmaeにカレントを移す
$driver->switchTo()->frame($my_frame);

// iframeの中の要素:WebDriverBy::id('hoge')
echo $driver->findElement(WebDriverBy::id('hoge'))->getText();

// iframeに移したカレントを戻す
$driver->switchTo()->defaultContent();

// iframeの外の要素:WebDriverBy::id('hoge')
echo $driver->findElement(WebDriverBy::id('hoge'))->getText();

公式

Alert, tabs, frames, iframes: facebook/php-webdriver