PowerShellからWebブラウザを操作しようとした場合、操作するWebブラウザを選ぶ必要がある。選択肢はいくつかあり、本連載ではMicrosoft Edgeを使うことにしたのだが、それにはいくつか理由がある。今回はこれについて取り上げる。

→連載「PowerShell Core入門 - 基本コマンドの使い方」の過去回はこちらを参照。

WebDriverを使ってWebブラウザを操作する

Webブラウザを外部のプログラムから自由気ままに操作できてしまうと、それはセキュリティ的に好ましい状態ではない。そのため、デフォルトでは外部からWebブラウザを操作することはできないようになっている。

しかし、WebアプリケーションやWebページ開発などで、繰り返し特定の操作をして動作確認を行う必要があるような開発では、デバッグの段階で何度も何度もWebブラウザを操作しなければいけないことがある。これを手動で行うのは現実的ではない。デバッグや互換性確保のために行う操作を自動化できるかどうかは、開発者にとって死活問題だ。

前回、こうした目的のために「WebDriver」というプロトコル(インタフェース)が用意されていることを説明した。操作したい内容をプログラムで組み、WebDriverを経由してWebブラウザに伝えると、Webブラウザはプログラムに従って、まるでユーザーが直接操作しているかのように動作してくれる。

ということは、WebDriverに対応していれば、どのWebブラウザを使っても良さそうな気がする。しかし、そうではないのが現実だ。

WebDriverの対応はまちまち。そしてこれからも変わりそう

StatCounterの調査(2022年10月)によれば、Windowsで利用される主要なWebブラウザは、対象を日本に絞った場合、シェアの多い順から次のようになっている。

  1. Google Chrome
  2. Microsoft Edge
  3. Mozilla Firefox

MacではSafariの使用が多いので、WindowsとMacの両方で考えるなら上記の4番目にSafariが加わることになる。

  1. Google Chrome
  2. Microsoft Edge
  3. Mozilla Firefox
  4. Apple Safari

シェアで考えればGoogle Chromeを、Windowsにデフォルトで入っているのでどこでも確実に使えそうだという点ならMicrosoft Edgeを、Chrome系の実装以外を使うならFirefoxを、MacならSafariを……といった感じで漠然と選択肢は見えてくる。しかし、使い物になるかどうかは実際に使ってみないとわからないのが現状だ。

WebDrvierは現在でも策定段階にあり、プロトコルや挙動が固まっておらず、WebブラウザごとのWebDriver対応も完璧ではない。実際問題として、この機能はEdgeでは動くけどChromeだと動かない、Chromeだと動くけどFirefxoだと動かない、といったようなケースが存在する。さらに、同じWebブラウザでも、Windowsだと動かないけどMacだと動く、といったこともある。この辺りはOSの動作ポリシーなども関わってくるため、完全に同じにはならない。

こうしたことから、少なくとも現状では、実際に使ってみないと目的とする動作を自動化できるかどうかはわからないのだ。

WebDriver対応の調査結果サンプル

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら