0. 動機
PowerShellでSelenium入れてちょっとした操作をしたいなと思ったこと。PowerAutomate for Desktop(PAD)おとなしく使ってもいいんですが、実行速度ちょっと遅いし、実行中に他の作業しにくかったりするのでPowerShellでできないかなと思って調べました。
PowerShellからSelenium使ってEdge動かす、というのはネットで調べても私みたいな初心者にはいまいち纏まった内容が見つからなかったのでここにメモしておきます。自分なりにやってみたのでもしおかしいところあれば教えてください。
※なおSeleniumを使って何をするか、は自己責任でお願いします。
- 10/7追記
- 結果としてSelenium 3.0.1のインストールは失敗したのですが、4.0.0 Preview-3で成功したのでご興味あれば下記記事参考下さい。
1. Windowsのエディション
- Windows 10 EnterPrise
手順1: Seleniumのインストール
- 管理者権限でPowerShellを起動し下記コマンドを実行
Install-Module -Name Selenium
手順2: MSEdge WebDriverのインストール
- 自身の利用するブラウザ(Edge)のバージョンを確認する
手順3: MicrosoftWebDriver.exeのインストール
-
Get-CommandでSeleniumのFunctionが表示されるのも確認したのでこれで動くだろ、と思い早速"$driver = Start-SeEdge"を実行したら下記のエラーが発生。MicrosoftWebDriver.exeというものが必要だとわかったので色々調べて落としました。
-
MicrosoftWebDriverは管理者権限でPowerShellを起動し下記コマンドを実行すると落とせます
DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
-
実行後、目当てのMicrosoftWebDriver.exeは下記パスに保存されます。
- 64 bitの場合
- C:\Windows\SysWOW64\MicrosoftWebDriver.exe
- 32 bitの場合
- C:\Windows\System32\MicrosoftWebDriver.exe
- 64 bitの場合
-
この後もう一度"$driver = Start-SeEdge"を実行すると下記のエラーが出たので、エラーで示されているパスにMicrosoftWebDriver.exeをコピペしました
手順4: プロキシの設定 (10/2更新、未解決)
-
この対策を調べるとドンピシャのQiita記事を確認。見る限り環境変数NO_PROXYを設定し値をlocalhostにすればよいと理解したのでそれでトライ。
- https://qiita.com/taito-ITO/items/9f766db5b782b809716d
- なおlocalhostをプロキシを通さないでやることがどういうことか、については下記3サイトが参考になりました。Seleniumにおけるやり取りは全てLocal PC内で行われており、PowerShell > Selenium Webdriver > MSEdgeDriver > Browser (Edge)という順で命令がブラウザに行くようになっているようですが、途中HTTP通信を利用する関係で本来行く必要が無いのにPROXYに通信信号が渡ってしまいそれによりアクセスブロックされるから、環境変数NO_PROXYにlocalhostを入れることでlocalhostへのアクセスの場合にはプロキシを通らなくなる、と理解しました。
-
これで終わる…と思いきや未だ下記エラーが。接続しているのは127.0.0.1って記載があるのになぜ… また余裕あるときに少し勉強したらこの記事更新します。なんとなくSelenium動かすまであと少しだと思うんですがまだみたいです。
-
10/7追記
- Seleniumのバージョン変えて実行したら成功したのですが、ご興味あれば下記記事参考下さい。
おわりに
-
基本自分用メモですがどこかの誰かの役に立てば幸いです。
-
でもPower Automate for Desktopは最初からWeb操作できる各種アクションがありますし、セレクタも設定できるし、勉強時間も少なくて済むので、初心者がWeb操作したいってなったらおとなしくPower Automate for Desktopやっとくといいのかな、と思いました。実行速度遅かったり、動作中他のPC操作しにくい、というデメリットありますが。
-
もし知見のある方でコメントある方いれば是非よろしくお願いします。