【PowerShell】Selenium-Module Send-SeKeys 文字列の入力

目次

概要

 ブラウザ上の文字列入力用コマンドになります。特殊キーについは、対象キーを{{}}で囲む事で実行可能になります。使用例はShort Exampleを参照ください。利用できる特殊キーは、Get-SeKeysコマンドで一覧取得することができます。

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

コマンド(Commond)

Send-SeKeys

代替コマンド(Alias)

無し

構文(Syntax)

Send-SeKeys [-Element] <IWebElement> [-Keys] <string> [-PassThru] [<CommonParameters>]

オプション

Name引数型解説Short Example
ElementIWebElement対象要素の指定Send-SeKeys -Element $Element -Keys "{{Shift}}hoge" -PassThru
Keysstring入力する文字列Send-SeKeys -Element $Element -Keys "{{Shift}}hoge" -PassThru
PassThru Object$Elementのオブジェクト情報を返すSend-SeKeys -Element $Element -Keys "{{Shift}}hoge" -PassThru
CommonParametersstring

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

オブジェクトプロパティ

Name出力例
WrappedDriverOpenQA.Selenium.Chrome.ChromeDriver
TagNametextarea
Text
EnabledTRUE
SelectedFALSE
Location{X=265,Y=190}
Size {Width=395, Height=27}
DisplayedTRUE
LocationOnScreenOnceScrolledIntoView{X=265,Y=190}
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 "{{Shift}}hoge" -PassThru
Start-Sleep -Seconds 2
Stop-SeDriver $Driver

Module

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

function Send-SeKeys {
    param(
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [OpenQA.Selenium.IWebElement]$Element,
        [Parameter(Mandatory = $true, Position = 1)]
        [string]$Keys,
        [Parameter()]
        [Alias('PT')]
        [switch]$PassThru
    )
    foreach ($Key in $Script:SeKeys.Name) {
        $Keys = $Keys -replace "{{$Key}}", [OpenQA.Selenium.Keys]::$Key
    }
    $Element.SendKeys($Keys)
    if ($PassThru) { $Element }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次