PowershellでSeleniumを扱う Ver2
私のブログのアクセス集計を行った所、以下の記事が大変読まれているようでした。
saica94.hatenablog.com
この記事を書いた時は下準備が大変でしたが、Powershell向けに公開されているモジュールが存在しており、そちらを使ったほうがかなり楽に操作できるので
今回はその解説となります。
※この解説で使用するブラウザはGoogle Chromeです。
モジュールのインストール
まず、Powershell上に下記のコマンドを入力してください。
Install-Module Selenium
たったこれだけでSeleniumを扱う下準備が整います。
なお、扱うブラウザのバージョンとWebDriverのバージョンが合致していないと動作しないので必ず合致させるようにしてください。
WebDriverのダウンロードはこちらから
指定したブラウザを起動する
# Chrome $Driver = Start-SeChrome # Edge $Driver = Start-SeEdge # FireFox $Driver = Start-SeFirefox # ID $Driver = Start-SeInternetExplorer # -Headlessオプションでブラウザ非表示となる $Driver = Start-SeChrome -Headless
指定URLへアクセスする
Enter-SeUrl "$URL" -Driver $Driver
エレメントの取得
$Element = Find-SeElement -Driver $Driver -Id "<ID>" $Element = Find-SeElement -Driver $Driver -ClassName "<ClassName>" $Element = Find-SeElement -Driver $Driver -TagName "<Tag_Name>" $Element = Find-SeElement -Driver $Driver -XPath "<XPath>"
エレメント取得処理がタイムアウトになる時間を設定する
$Element = Find-SeElement -Driver $Driver -Wait -Timeout 10 -Id "btn"
取得したエレメントに対する操作
キー入力
# 通常文字列 Send-SeKeys -Element $Element -Keys "<strings>" # 特殊文字 Send-SeKeys -Element $Element -Keys "{{ENTER}}"
エレメント or ボタンをクリックする
$Element = Find-SeElement -Driver $Driver -Id "btn" Invoke-SeClick -Element $Element # or $Element = Find-SeElement -Driver $Driver -Id "btn" $Element.Click()
スクリーンショットの撮影
$SS = Invoke-SeScreenshot -Target $Driver Save-SeScreenshot -Screenshot $SS -Path .\test.png
終了する
Stop-SeDriver -Driver $Driver
このコマンド群の組み合わせでほとんどのブラウザ操作は自動化できます。
更に詳細なコマンドレットが知りたい場合は、下記のページを参照してください。
github.com