【PowerShell】Selenium-Module SeType 文字列入力と確定

目次

概要

 文字列の入力、及び確定送信用のコマンドになります。検索ボックスへの文字列の入力のみでしたら、Send-SeKeysで実行可能です。次へ進むためには、文字列入力後に検索ボタンをクリックする動作が必要ですが、このSeTypeで一連の動作が可能になります。

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

コマンド(Commond)

SeType

代替コマンド(Alias)

無し

構文(Syntax)

SeType [-Keys] <string> -Element <IWebElement> [-ClearFirst] [-SleepSeconds <Object>] [-Submit] [-PassThru] [<CommonParameters>]

オプション

Name引数型解説Short Example
Keysstring入力する文字列の指定SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
ElementIWebElement対象Elementの指定SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
ClearFirst文字列の初期クリアSeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
SleepSecondsObject待機秒数の指定SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
Submit確定送信SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
PassThruオブジェクト情報を返すSeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru
CommonParameters共通パラメータ

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

オブジェクトプロパティ

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

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

Example

$Driver = Start-SeChrome -StartURL "https://google.co.jp" -Quiet
$Element = Find-SeElement -Driver $Driver -Name "q"

Send-SeKeys -Element $Element -Keys "hoge"
Start-Sleep -Seconds 2
SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru

Start-Sleep -Seconds 2
Stop-SeDriver $Driver

Module

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

function SeType {
    param(
        [Parameter(Mandatory = $true, Position = 0)]
        [string]$Keys,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [OpenQA.Selenium.IWebElement]$Element,
        [switch]$ClearFirst,
        $SleepSeconds = 0 ,
        [switch]$Submit,
        [Alias('PT')]
        [switch]$PassThru
    )
    begin {
        foreach ($Key in $Script:SeKeys.Name) {
            $Keys = $Keys -replace "{{$Key}}", [OpenQA.Selenium.Keys]::$Key
        }
    }
    process {
        if ($ClearFirst) { $Element.Clear() }

        $Element.SendKeys($Keys)

        if ($Submit) { $Element.Submit() }
        if ($SleepSeconds) { Start-Sleep -Seconds $SleepSeconds }
        if ($PassThru) { $Element }
    }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次