目次
概要
ブラウザ上のWeb要素をクリックするためのコマンドになります。リンクテキストのクリック動作やチェックボックスのクリック動作をする時に役立ちます。類似のコマンドでSend-SeClickがあります、Send-SeClickの方が引数指定できる項目が多いです。Invoke-SeClickは、シンプルなクリック動作をしたい場合に利用できるメソッドになります。
PowerShellでSeleniumモジュールを利用する方法
Seleniumは多言語で利用可能なツールです。PowerShell専用でSeleniumのクラスは用意されていませんが、C#用に.NETのSeleniumは用意されています。公式には例文も無い...
コマンド(Commond)
Invoke-SeClick
代替コマンド(Alias)
無し
構文(Syntax)
Invoke-SeClick -Element <IWebElement> [<CommonParameters>]
オプション
Name | 引数型 | 解説 | Short Example |
---|---|---|---|
Element | IWebElement | 対象要素の指定 | Invoke-SeClick -Element $Element[0] |
CommonParameters | string | 共通パラメータ |
※ShortExampleは、動作確認ができたコードを記載しています。
Example
$Driver = Start-SeChrome
Enter-SeUrl https://programan.org/ -Driver $Driver
$Element = Find-SeElement -Driver $Driver -ClassName "newmark"
Invoke-SeClick -Element $Element[0]
Start-Sleep -Seconds 2
Stop-SeDriver $Driver
Module
Invoke-SeClickのSelenium-Module構文を以下に掲載します。
function Invoke-SeClick {
[CmdletBinding(DefaultParameterSetName = 'Default')]
param(
[Parameter(Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'Default')]
[Parameter(Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'JavaScript')]
[OpenQA.Selenium.IWebElement]$Element,
[Parameter(Mandatory = $true, ParameterSetName = 'JavaScript')]
[Switch]$JavaScriptClick,
[Parameter(ParameterSetName = 'JavaScript')]
[ValidateIsWebDriverAttribute()]
$Driver = $global:SeDriver
)
if ($JavaScriptClick) {
try {
$Driver.ExecuteScript("arguments[0].click()", $Element)
}
catch {
$PSCmdlet.ThrowTerminatingError($_)
}
}
else {
$Element.Click()
}
}