目次
概要
起動しているブラウザ画面のスクリーンショットを取得するメソッドです。スクリーンショットを保存する場合は、Save-SeScreenshotでスクリーンショット画像を保存します。ドライバーオブジェクトやWeb要素オブジェクトでもスクリーンショットを取得するメソッド(GetScreenshot)があります。
あわせて読みたい
PowerShellでSeleniumモジュールを利用する方法
Seleniumは多言語で利用可能なツールです。PowerShell専用でSeleniumのクラスは用意されていませんが、C#用に.NETのSeleniumは用意されています。公式には例文も無い...
コマンド(Commond)
Invoke-SeScreenshot
代替コマンド(Alias)
無し
構文(Syntax)
Invoke-SeScreenshot [[-Target] <Object>] [-AsBase64EncodedString] [<CommonParameters>]
オプション
Name | 引数型 | 解説 | Short Example |
---|---|---|---|
Target | Object | ドライバーやWeb要素を指定 | $screenshot = Invoke-SeScreenshot -Target $Driver |
AsBase64EncodedString | Base64にエンコードされた文字列を返す | Invoke-SeScreenshot -Target $Driver -AsBase64EncodedString | |
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
Invoke-SeScreenshotのSelenium-Module構文を以下に掲載します。
function Invoke-SeScreenshot {
param(
[Parameter(ValueFromPipeline = $true)]
[Alias("Driver")]
[ValidateIsWebDriverAttribute()]
$Target = $Global:SeDriver,
[Parameter(Mandatory = $false)]
[Switch]$AsBase64EncodedString
)
$Screenshot = [OpenQA.Selenium.Support.Extensions.WebDriverExtensions]::TakeScreenshot($Target)
if ($AsBase64EncodedString) {
$Screenshot.AsBase64EncodedString
}
else {
$Screenshot
}
}