プログラミング研修の中で、受講生のプログラムの確認・評価。
プログラムはWebプログラムで、
課題仕様通りに作られているかの確認を40~50人分する必要があり、
評価基準も一定にしたい&時間を掛けずに評価を終わらせたい。
Excel&VBAでも使ったSeleniumをPowershellで使ってみることにした。
環境構築・準備と簡単な操作コードをメモ書き。
環境情報
OS:Windows11
Powershell:Version 5.1.**
Webブラウザ:Google Chrome
ちなみに評価するプログラムはJSP Servletで作られたWebプログラム。
PowershellはOSに標準インストールされているものだったので、特に準備はしていない。
準備
PowershellからSeleniumを使ってChrome操作をするには、
Seleniumのライブラリと、Chrome用のドライバーが必要。
●Seleniumのライブラリ
ここからダウンロード。
C#用のライブラリを使うので、C#用のファイルをダウンロードする。
NuGetパッケージとしてダウンロードしてきて、拡張子をzipに変更して解凍。
●Chromeドライバー
ここからダウンロード。
基本は最新版をダウンロードすれば良いと思うが、操作するChromeのバージョンに合わせる。
Chromeは自動更新でバージョンが上がっていくので、ドライバーも更新が必要になる。
ダウンロードしたライブラリとドライバーは
Cドライブ以下にフォルダを作って保存しておく。
Cドライブ以外に置くと、dotNetのセキュリティポリシー変えないとエラーが出る。
ライブラリのロードと起動
ここからはPowershell。
ライブラリを読み込み、Chromeドライバーの場所を渡してSeleniumを起動させる。
Powershellが終了すると、Seleniumのウィンドウも閉じてしまうので、
起動確認にはポーズでも追加が必要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using namespace OpenQA.Selenium … # ライブラリとドライバーの場所 $webDriverDllPath = "C:\Tools\selenium.webdriver.4.10.0\lib\net48\WebDriver.dll" $chromeDriverDirPath = "C:\Tools\chromedriver_win32" #dll読み込み Add-Type -Path $webDriverDllPath # chrome起動 $chromeDriver = New-Object Chrome.ChromeDriver($chromeDriverDirPath) $chromeDriver.Manage().Window.Size = New-Object System.Drawing.Size(1000,700) |
Selenium操作の一部
ここまででSeleniumウィンドウの起動ができたので、
指定URLへ遷移と、画面要素の取得、キー入力のサンプル。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 起動で作成した chromeDriverオブジェクトに対して操作 # 指定URLへ遷移 $chromeDriver.Navigate().GoToUrl("https://google.co.jp") # タグ名で取得(1つだけ取得、複数取得) $ele = $chromeDriver.FindElement([By]::TagName("input")) $ele = $chromeDriver.FindElements([By]::TagName("input")) # nameで取得する要素を指定 $ele = $chromeDriver.FindElement([By]::Name("userName")) # キー入力 $ele.sendkeys("あいうえお") |
その他の操作をしたい場合は、ライブラリのdocumentを参照するのが良いかと。
API Documentはライブラリのダウンロードページにあります。
コメント