1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShell Seleniumで自動Webサイトログイン

Last updated at Posted at 2024-02-12

注意点

プログラムの実行については、すべて自己責任で行ってください。実行により発生した、いかなる直接的または間接的被害について、作者はその責任を負いません。

Powershellのバージョン

5.1

使用するモジュール

PowerShellget 2.2.5
Selenium 4.0.0-preview3

参考にした記事

https://qiita.com/_Sasaki_/items/91224e038ae565fb1a83
https://qiita.com/_Sasaki_/items/7643f5e144641265e8d7
(以下はログイン要の記事)
https://news.mynavi.jp/techplus/article/powershell_core_--234/

モジュールのインストール(準備含む)

(準備)CurrentUserの権限をUnrestricted→RemoteSignedに変更

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

(準備)PowerShellgetのバージョンを更新

Install-Module PowerShellGet -Force -AllowClobber -Scope CurrentUser

Seleniumをインストール

Install-Module -Name Selenium -Force -AllowPrerelease -Scope CurrentUser

もしSeleniumに同梱されている各ブラウザのWebDriverが、使用するブラウザのバージョンと合っていなければ、該当するバージョンのWebDriverをダウンロードして置き換える。

▼配布元URLは以下
Edge: https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/?form=MA13LH#downloads
Chrome: https://googlechromelabs.github.io/chrome-for-testing/

▼各ブラウザのバージョン確認
Edge: 設定→Microsoft Edgeについて
image.png

Chrome: 設定→Chromeについて
image.png

Seleniumを使ってみる

今回はWebサイトにログインしてみる。
サンプルとして以下のWebサイトを使用。
https://hotel.testplanisphere.dev/ja/index.html
image.png

ブラウザを指定してURLを開く

Start-SeDriver -Browser Edge -StartURL 'https://hotel.testplanisphere.dev/ja/index.html'

要素の取得

> XPathで要素を取得
$go_login_page_button = Get-SeElement -By XPath -Value '//*[@id="login-holder"]/a'
  1. XPathとは?
    XPath (XML Path Language)は、XMLやHTMLドキュメントのツリー構造から特定の要素や属性値を選択するための言語です。これは特にWebページの情報取得において有用で、Webページは通常HTMLで記述されています。
    ブラウザ(Chrome、Firefoxなど)を使用してWebページのHTMLを表示する際には、F12キーを押すことで対応するHTMLドキュメントに簡単にアクセスでき、XPathを利用して特定のデータを抽出することが可能です。
    https://www.octoparse.jp/blog/xpath-introduction
XPathの取得方法(Edgeの場合)

XPathを取得したい要素の上で右クリック→「開発者用ツールで調査する」→開発者用ペインが開き、該当箇所が自動選択される→選択されたコード上で右クリック→コピー→XPathのコピーで取得できます。
image.png

取得した要素のクリック

Invoke-SeClick -Element $go_login_page_button

文字を入力

> 入力したい要素を取得
$login_id_area = Get-SeElement -By XPath -Value '//*[@id="email"]'

> 指定した文字を取得した要素に入力
Invoke-SeKeys -Element $login_id_area -Keys 'sakura@example.com'
> 入力したい要素を取得
$login_password_area = Get-SeElement -By XPath -Value '//*[@id="password"]'

> 指定した文字を取得した要素に入力
Invoke-SeKeys -Element $login_password_area -Keys 'pass1234'

(おまけ)

ログイン情報を入力しただけでは先に進めないため、ログインボタンを押す必要がある。

> クリックしたい要素を取得
$login_submit_button = Get-SeElement -By XPath -Value '//*[@id="login-button"]'

> 取得した要素のクリック
Invoke-SeClick -Element $login_submit_button

プロセスを終了

Stop-SeDriver
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?