【PowerShell】Selenium-Module Open-SeUrl ブラウザ操作(戻る、進む等)

目次

概要

 ブラウザ画面の「戻る」、「進む」、「更新」を操作する関数になります。URLを指定して画面変遷することもできます。

 PowerShellでSeleniumを利用するに当たって、ある程度簡易的にSeleniumを利用できる様に専用のモジュールがGitHubに用意されています。いきなりPowerShellでSeleniumを扱うより、Seleniumを-Moduleを利用した方が簡単にPowerShellでSleniumを利用することができます。環境構築するには、以下ページを参照してみてください。

コマンド(Commond)

Open-SeUrl

代替コマンド(Alias)

Open-SeUrlSeNavigate、Enter-SeUrl

構文(Syntax)

  • Open-SeUrl [-Target <Object>] [<CommonParameters>]
  • Open-SeUrl [-Url] <string> [-Target <Object>] [<CommonParameters>]
  • Open-SeUrl -Back [-Target <Object>] [<CommonParameters>]
  • Open-SeUrl -Forward [-Target <Object>] [<CommonParameters>]
  • Open-SeUrl -Refresh [-Target <Object>] [<CommonParameters>]

オプション

Name引数型解説Short Example
UrlObjectURLの指定Open-SeUrl -Url https://programan.org/ -Target $Driver
Target ObjectDriverオブジェクトを指定Open-SeUrl -Url https://programan.org/ -Target $Driver
Backブラウザの「戻る」Open-SeUrl -Driver $Driver -Back
Forwardブラウザの「進む」Open-SeUrl -Driver $Driver -Forward
Refreshブラウザ更新Open-SeUrl -Driver $Driver -Refresh
CommonParameters共通パラメータ

※ShortExampleは、動作確認ができたコードを記載しています。

Example

 Open-SeUrl関数で以下の様なブラウザ操作を実行します。(操作毎に2秒の待機時間を設けています。)
指定URLへ移動 ⇒ リンクをクリック ⇒ 戻る ⇒ 進む ⇒ 画面更新 ⇒ ブラウザを閉じる

$Driver = Start-SeChrome -Quiet
Open-SeUrl -Url https://programan.org/ -Target $Driver
$Element = Get-SeElement -Target $Driver -ClassName "newmark" -Timeout 10
Invoke-SeClick -Element $Element
Start-Sleep -Seconds 2
Open-SeUrl -Driver $Driver -Back
Start-Sleep -Seconds 2
Open-SeUrl -Driver $Driver -Forward
Start-Sleep -Seconds 2
Open-SeUrl -Driver $Driver -Refresh
Start-Sleep -Seconds 2
Stop-SeDriver $Driver

Module

Open-SeUrlのSelenium-Module構文を以下に掲載します。

function Open-SeUrl {
    [cmdletbinding(DefaultParameterSetName = 'default')]
    [Alias('SeNavigate', "Enter-SeUrl")]
    param(
        [Parameter(Mandatory = $true, position = 0, ParameterSetName = 'url')]
        [ValidateURIAttribute()]
        [string]$Url,

        [Parameter(Mandatory = $true, ParameterSetName = 'back')]
        [switch]$Back,

        [Parameter(Mandatory = $true, ParameterSetName = 'forward')]
        [switch]$Forward,

        [Parameter(Mandatory = $true, ParameterSetName = 'refresh')]
        [switch]$Refresh,

        [Parameter(ValueFromPipeline = $true)]
        [Alias("Driver")]
        [ValidateIsWebDriverAttribute()]
        $Target = $Global:SeDriver
    )

    switch ($PSCmdlet.ParameterSetName) {
        'url' { $Target.Navigate().GoToUrl($Url); break }
        'back' { $Target.Navigate().Back(); break }
        'forward' { $Target.Navigate().Forward(); break }
        'refresh' { $Target.Navigate().Refresh(); break }

        default { throw 'Unexpected ParameterSet' }
    }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAを中心とした自動化、効率化の手法を紹介しています。現在は、SeleniumBasicのexamplesを紹介しています。その内、SeleniumBasic以外の手法も掲載したいと思っております。

目次