目次
概要
文字列の入力、及び確定送信用のコマンドになります。検索ボックスへの文字列の入力のみでしたら、Send-SeKeysで実行可能です。次へ進むためには、文字列入力後に検索ボタンをクリックする動作が必要ですが、このSeTypeで一連の動作が可能になります。
PowerShellでSeleniumモジュールを利用する方法
Seleniumは多言語で利用可能なツールです。PowerShell専用でSeleniumのクラスは用意されていませんが、C#用に.NETのSeleniumは用意されています。公式には例文も無い...
コマンド(Commond)
SeType
代替コマンド(Alias)
無し
構文(Syntax)
SeType [-Keys] <string> -Element <IWebElement> [-ClearFirst] [-SleepSeconds <Object>] [-Submit] [-PassThru] [<CommonParameters>]
オプション
Name | 引数型 | 解説 | Short Example |
---|---|---|---|
Keys | string | 入力する文字列の指定 | SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru |
Element | IWebElement | 対象Elementの指定 | SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru |
ClearFirst | 文字列の初期クリア | SeType -Element $Element -Keys "{{shift}}hoge" -ClearFirst -SleepSeconds 2 -Submit -PassThru | |
SleepSeconds | Object | 待機秒数の指定 | 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 | 出力例 |
---|---|
WrappedDriver | OpenQA.Selenium.Chrome.ChromeDriver |
TagName | |
Text | |
Enabled | |
Selected | |
Location | |
Size | |
Displayed | |
LocationOnScreenOnceScrolledIntoView | |
Coordinates | OpenQA.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 }
}
}