【PowerShell】Selenium-Module Invoke-SeClick クリック操作

目次

概要

 ブラウザ上のWeb要素をクリックするためのコマンドになります。リンクテキストのクリック動作やチェックボックスのクリック動作をする時に役立ちます。類似のコマンドでSend-SeClickがあります、Send-SeClickの方が引数指定できる項目が多いです。Invoke-SeClickは、シンプルなクリック動作をしたい場合に利用できるメソッドになります。

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

コマンド(Commond)

Invoke-SeClick

代替コマンド(Alias)

無し

構文(Syntax)

Invoke-SeClick -Element <IWebElement> [<CommonParameters>]

オプション

Name引数型解説Short Example
ElementIWebElement対象要素の指定Invoke-SeClick -Element $Element[0]
CommonParametersstring共通パラメータ

※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()
    }

}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次