前回までに紹介した機能で、PowerShell Seleniumを経由したMicrosoft Edgeの操作はほぼできるようになったはずだ。これだけで、人が行っていた操作のほとんどをPowerShellから実行できるようになっている。今回は、機能としては最後のひと押しとなる「JavaScriptの実行」について取り上げる。
→連載「PowerShell Core入門 - 基本コマンドの使い方」の過去回はこちらを参照。
JavaScriptが実行できれば実質的に何でもできる
前回までに紹介した機能は、PowerShell Seleniumを使うことで、PowerShellのコマンドレットからMicrosoft Edgeの制御を行えるというものだった。これだけでもかなりのWebページの操作を自動化できる。
それでは提供されていない機能についてはどうか。その場合、PowerShell Seleniumを使って任意のJavaScriptコードを実行することができる。つまり、Webブラウザの開発者ツールを使って自由にページを操作できるのと同じことが、PowerShellからも実行できるわけだ。
サンプルページをJavaScriptで書き換えていく
今回は「https://getbootstrap.com/docs/4.0/examples/sign-in/」をサンプルページとして利用する。このページを表示した後、JavaScriptを実行してサンプルページの内容を書き換えるといった操作を行う。
サンプルページを開発者ツールで調べておく。
Webページのコンテンツはbody要素がトップに位置していることが多い。body要素のXPathは「/html/body」だ。今回はこのbody要素を編集することにする。body要素は通常、Webページごとに1つしかないので、body要素を名前で取得するJavaScriptのコードを使っても十分なので、今回はその方法で実装する。
PowerShell SeleniumからJavaScriptを実行
早速PowerShell SeleniumからJavaScriptを実行してみよう。まず、Microsoft Edge WebDriverとMicrosoft Edgeの起動を行う。
PS C:\Users\daichi> webdriver_edge_start.ps1
Microsoft Edge WebDriverを起動します。
Microsoft Edge WebDriverの起動処理完了。
PS C:\Users\daichi> S
webdriver_edge_start.ps1は付録として稿末に記すので、そちらを参照していただければと思う。
続いて、Set-SeUrlコマンドレットでサンプルページをオープンする。