PowerShellによりGoogleChromeを操作して、テキストボックスの入力をしてボタンを押下するサンプルコード

記事内に広告が含まれています。
《スポンサーリンク(広告)》

※エンジニアは英語必須!業界初の定額レッスン無制限!オンラインで英語を学習しませんか?

《スポンサーリンク(広告)》

PowerShellにより外部ライブラリのSeleniumを使用しGoogleChromeを操作してみました。

PowerShellスクリプトの内容は、テキストボックスに入力してボタンを押下するという、ありがちな操作です。

《スポンサーリンク(広告)》

coconalaはロゴデザイン、Webマーケティング、副業のあらゆるスキルのマーケットです(ビジネス・個人問わないサービス)

《スポンサーリンク(広告)》

仕様

PowerShellでSeleniumを実行すると、HTML要素を取得し自動的にブラウザを操作することができます。

今回は例として、以下のようなテキストボックスとボタンを用意したHTML画面を用意します。

そして、PowerShellからテキストボックスに値を格納し、ボタンを押下してみます。

また、JavaScriptによりボタン押下時に、テキストボックスの値が出現するようにしてあります。

準備

最初にいくつか外部のファイルを準備する必要があります。

PowerShell単体ではGoogleChromeを操作できず、Seleniumというブラウザ操作を自動化するフレームワークが必要になるからです。

必要なファイル

下記の2ファイルを、PowerShellのScriptファイル(*.ps1)と同じフォルダに格納します。

ファイル挙動ダウンロード元補足
Selenium.WebDriverブラウザに組み込まれている自動化の仕組み(Driver)を使用して、ブラウザを操作する。Selenium WebDriver
PowerShellの場合は、画面をスクロールして、C#用をダウンロードします。
「selenium.webdriver.X.X.X.nupkg」→「selenium.webdriver.4.8.1.zip」に拡張子を変更して解凍します。
Chrome Driver各ベンダーによって公開されたブラウザを操作するためのAPIを公開したライブラリ。
ベンダーによって提供されているため、標準のSeleniumには含まれていない。
ChromeDriver今回はWindows環境でGoogle Chromeを使用するので、Windows用の「chromedriver_win32.zip」をダウンロードします。
ファイル一覧

ソースコード

自前で用意するソースコードはhtmlファイルと、PowerShellのScriptファイル(*.ps1)の2つです。

page1.html

中身はテキストボックスとボタンが配置されています。

ボタンを押下すると、JavaScriptのdisplayAlert()が実行され、テキストボックスの中身が表示されます。

<html>
<head>
    <title>ページ1</title>
    <script>
    function displayAlert(){
        alert(document.getElementById('input1').value);
    }
    </script>
</head>
<body>
    ページ1です。
    <form method="post">
        <input type="text" id="input1" name="input1">
        <input type="button" id="button1" value="送信ボタン" onclick="displayAlert();">
    </form>
</body>
</html>

browsing.ps1

下記のような順でHTMLファイルを操作します。

HTMLを開く部分はURLでも大丈夫です。

  1. GoogleChromeを起動します。
  2. 同じディレクトリのpage1.htmlを開きます。
  3. テキストボックスに「あいうえお」の文字列を入力します。
  4. ボタン押下します。
# dllパス生成
$currentPath = (Convert-Path .)
$webDriverDllPath = $currentPath + "\selenium.webdriver.4.8.1\lib\net48\WebDriver.dll"
$chromeDriverDirPath = $currentPath + "\chromedriver_win32"

# パスからdll読み込み
Add-Type -Path $webDriverDllPath

# chrome起動
$chromeDriver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeDriverDirPath)

# URLを開く
$chromeDriver.Url = $currentPath + "\page1.html"

#テキストボックスに値入力
$element = $chromeDriver.FindElement([OpenQA.Selenium.By]::Id("input1"))
$element.sendKeys("あいうえお");

# ボタン押下
$chromeDriver.FindElement([OpenQA.Selenium.By]::Id("button1")).click()

pause

ファイル配置

下記のようにダウンロードして解凍したファイルと、PowerShellのScriptファイル(*.ps1)、操作するHTMLファイル(*.html)を同じフォルダに格納しています。

※「backup」フォルダは解凍前のファイルや、ごみファイルを個人的に取っておいただけのフォルダなので不要です(無くても動作に影響ないです)。

テスト実行

実行は右クリックメニューの「PowerShellで実行」をクリックします。

すると、ブラウザのGoogle Chromeが起動しました。

PowerShellによりボタンが自動で押下され、アラートでテキストボックスの値が出力されることが確認できました。

「OK」ボタンを押下すると、テキストボックスの内容も確認できます。

参考情報

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows10
2PowerShell5.1
3ブラウザGoogle Chrome
バージョン: 111.0.5563.65(Official Build) (64 ビット)
4selenium.webdriver4.8.1 C#用
5chromedriver111.0.5563.64
環境一覧

以上です。

コメント

タイトルとURLをコピーしました