【PowerShell】Selenium-Module Send-SeClick クリック動作(引数多)

目次

概要

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

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

コマンド(Commond)

Send-SeClick

代替コマンド(Alias)

SeClick

構文(Syntax)

Send-SeClick [-Element] <IWebElement> [-JavaScriptClick] [-SleepSeconds <Object>] [-Driver <Object>] [-PassThru] [<CommonParameters>]

オプション

Name引数型解説Short Example
ElementIWebElement対象要素の指定Send-SeClick -Element $Element[0] -JavaScriptClick -SleepSeconds 2 -PassThru
JavaScriptClickJavaScriptによるクリックSend-SeClick -Element $Element[0] -JavaScriptClick -SleepSeconds 2 -PassThru
SleepSeconds Object待機時間Send-SeClick -Element $Element[0] -JavaScriptClick -SleepSeconds 2 -PassThru
DriverObject利用不可(引数指定しない)
PassThru オブジェクト情報を返すSend-SeClick -Element $Element[0] -JavaScriptClick -SleepSeconds 2 -PassThru
CommonParametersstring共通パラメータ

※ShortExampleは、動作確認ができたコードを記載しています。

オブジェクトプロパティ

Name出力例
WrappedDriverOpenQA.Selenium.Chrome.ChromeDriver
TagName
Text
Enabled
Selected
Location
Size 
Displayed
LocationOnScreenOnceScrolledIntoView
CoordinatesOpenQA.Selenium.Remote.RemoteCoordinates

※ShortExampleは、動作確認ができたコードを記載しています。

Example

$Driver = Start-SeChrome -Quiet
Enter-SeUrl https://programan.org/ -Driver $Driver
$Element = Find-SeElement -Driver $Driver -ClassName "newmark"
Send-SeClick -Element $Element[0] -JavaScriptClick -SleepSeconds 2 -PassThru
Stop-SeDriver $Driver

Module

Send-SeClickのSelenium-Module構文を以下に掲載します。

function Send-SeClick {
    [alias('SeClick')]
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
        [OpenQA.Selenium.IWebElement]$Element,
        [Alias('JS')]
        [Switch]$JavaScriptClick,
        $SleepSeconds = 0 ,
        [Parameter(DontShow)]
        $Driver,
        [Alias('PT')]
        [switch]$PassThru
    )
    Process {
        if ($JavaScriptClick) { $Element.WrappedDriver.ExecuteScript("arguments[0].click()", $Element) }
        else { $Element.Click() }
        if ($SleepSeconds) { Start-Sleep -Seconds $SleepSeconds }
        if ($PassThru) { $Element }
    }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次