目次
概要
起動しているブラウザで取得したスクリーンショットを保存するメソッドです。スクリーンショットを取得する場合は、Invoke-SeScreenshotでスクリーンショット画像を事前に取得しておきます。ドライバーオブジェクトやWeb要素オブジェクトでスクリーンショットを取得するメソッド(GetScreenshot)を利用してもOKです。
PowerShellでSeleniumモジュールを利用する方法
Seleniumは多言語で利用可能なツールです。PowerShell専用でSeleniumのクラスは用意されていませんが、C#用に.NETのSeleniumは用意されています。公式には例文も無い...
コマンド(Commond)
Save-SeScreenshot
代替コマンド(Alias)
無し
構文(Syntax)
Save-SeScreenshot [-Screenshot] <Screenshot> [-Path] <string> [[-ImageFormat] <ScreenshotImageFormat>] [<CommonParameters>]
オプション
Name | 引数型 | 解説 | Short Example |
---|---|---|---|
Screenshot | Screenshot | スクリーンショットオブジェクトの指定 | Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan.png" |
Path | string | 保存先のフルパスを文字列で指定 | Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan.png" |
ImageFormat | ScreenshotImageFormat | 画像形式を"Bmp","Gif","Jpeg","Png","Tiff"から指定 | Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan.png" |
CommonParameters | 共通パラメータ |
※ShortExampleは、動作確認ができたコードを記載しています。
Example
1.Invoke-SeScreenshotを利用したスクリーンショットの取得方法例です。
$shell = New-Object -ComObject Shell.Application
$DocumentDir = $shell.NameSpace("shell:Personal").Self.Path
$Driver = Start-SeChrome -Quiet
Enter-SeUrl https://programan.org/ -Driver $Driver
$screenshot = Invoke-SeScreenshot -Target $Driver
Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan.png"
Stop-SeDriver $Driver
2.GetScreenshotを利用したスクリーンショットの取得方法例です。こちらの方法では、Web要素のスクリーンショットも取得することができます。
$shell = New-Object -ComObject Shell.Application
$DocumentDir = $shell.NameSpace("shell:Personal").Self.Path
$Driver = Start-SeChrome -Quiet
Enter-SeUrl https://programan.org/ -Driver $Driver
$screenshot = $Driver.GetScreenshot()
Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan_drv.png"
$Element = Get-SeElement -Target $Driver -ClassName "newmark"
$screenshot = $Element[0].GetScreenshot()
Save-SeScreenshot -Screenshot $screenshot -ImageFormat Png -Path $DocumentDir"\PowerShell\programan_ele.png"
Stop-SeDriver $Driver
Module
Save-SeScreenshotのSelenium-Module構文を以下に掲載します。
function Save-SeScreenshot {
param(
[Parameter(ValueFromPipeline = $true, Mandatory = $true)]
[OpenQA.Selenium.Screenshot]$Screenshot,
[Parameter(Mandatory = $true)]
[string]$Path,
[Parameter()]
[OpenQA.Selenium.ScreenshotImageFormat]$ImageFormat = [OpenQA.Selenium.ScreenshotImageFormat]::Png)
process {
$Screenshot.SaveAsFile($Path, $ImageFormat)
}
}