目次
概要
Chromeドライバで起動したブラウザにて複数ウィンドウを開いている場合、ウィンドウハンドル名を指定してウィンドウを移動することができます。ウィンドウハンドル名は事前にGet-SeWindowで取得しておきます。複数ウィンドウを開いている場合、Get-SeWindowはウィンドウハンドル名を配列に格納します。
PowerShellでSeleniumモジュールを利用する方法
Seleniumは多言語で利用可能なツールです。PowerShell専用でSeleniumのクラスは用意されていませんが、C#用に.NETのSeleniumは用意されています。公式には例文も無い...
コマンド(Commond)
Switch-SeWindow
代替コマンド(Alias)
無し
構文(Syntax)
Switch-SeWindow [[-Target] <IWebDriver>] [-Window] <Object> [<CommonParameters>]
オプション
Name | 引数型 | 解説 | Short Example |
---|---|---|---|
Target | IWebElement | 対象要対象driverの指定 | Switch-SeWindow -Target $Driver -Window $winHandle[1] |
Window | Object | ウィンドウハンドル名の指定 | Switch-SeWindow -Target $Driver -Window $winHandle[1] |
CommonParameters | string | 共通パラメータ |
※ShortExampleは、動作確認ができたコードを記載しています。
Example
$Driver = Start-SeChrome -Quiet
Enter-SeUrl https://programan.org/ -Driver $Driver
$Element = Get-SeElement -Target $Driver -ClassName "newmark" -Timeout 10
[OpenQA.Selenium.Interactions.Actions]$actions = New-Object OpenQA.Selenium.Interactions.Actions ($Driver)
$actions.MoveToElement($Element).KeyDown([OpenQA.Selenium.Keys]::Control).Click($Element).Perform()
$winHandle = Get-SeWindow -Target $Driver
Start-Sleep -Seconds 2
Switch-SeWindow -Target $Driver -Window $winHandle[1]
Start-Sleep -Seconds 3
Stop-SeDriver $Driver
Module
Switch-SeWindowのSelenium-Module構文を以下に掲載します。
function Switch-SeWindow {
param(
[Parameter(Mandatory = $false, ValueFromPipeline = $true)]
[Alias('Driver')]
[OpenQA.Selenium.IWebDriver]
$Target = $Global:SeDriver,
[Parameter(Mandatory = $true)]$Window
)
process {
$Target.SwitchTo().Window($Window) | Out-Null
}
}