PHPのSeleniumでタブの切り替えを行う方法


PHPのSeleniumで2つのタブの切り替えを行う方法。

$url = "https://www.google.com/"
$main = $driver->getWindowHandle();
$sub = null;

$driver->executeScript("window.open(\". $url . "\", null, null)");

foreach ( $driver->getWindowHandles() as $handle ) { 
  if ( $handle != $main ) {
    $sub = $handle;
  }
}

$driver->switchTo()->window($sub);

/* やりたい処理 */

$driver->close();

$driver->switchTo()->window($main);

自分のためのめも

  • $driver->executeScript( ~~ );で新しいタブを開く
  • foreach ( ~~ )では全ウィンドウハンドルを取得して、新しいタブのウィンドウハンドルを$subに格納
  • $driver->switchTo()->window($sub);$sub(新しいタブ)に切り替え
  • $driver->close();で新しいタブを閉じる
  • $driver->switchTo()->window($main);で元のタブに切り替える