覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Windows - SeleniumのChromeDriverをインストールする

Google Chrome を Selenium で制御するための ChromeDriver を Windows (今回は Windows 11 環境) にインストールする方法です。

winget でインストールできればいいのですが、そうもいかないようなので。以下の手順でやりました。


ドライバのダウンロード

以下のページにアクセスして、お目当てのバージョンの ChromeDriverを探してダウンロードします。

https://chromedriver.storage.googleapis.com/index.html

今回試した際は 99.0.4844.51chromedriver_win32.zip をダウンロードしました。


ドライバの配置

ダウンロードした zip ファイルを展開し、chromedriver.exe を 適当なディレクトリに配置します。

今回は、Seleniumuの公式サイトに合わせて C:\WebDriver\bin に配置しました。


Path への追加

chromedriver.exe を配置したディレクトリを 環境変数の Path に追加します。
以下のコマンドをコマンドプロンプト上で実行します。

■ユーザ環境変数 の Path に追加する場合

SETX PATH "%PATH%;C:\WebDriver\bin"


■システム環境変数 の Path に追加する場合 (※管理者権限でコマンドプロンプトを起動している必要があります)

SETX /M PATH "%PATH%;C:\WebDriver\bin"


■実行例

C:\Users>SETX /M PATH "%PATH%;C:\WebDriver\bin"

成功: 指定した値は保存されました。


実行後にコマンドプロンプトを起動しなおして、echo %PATH% を実行すると環境変数に追加されていることがわかります。

■例

C:\Users>echo %PATH%
C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\PowerShell\7\;C:\Program Files\Git\cmd;C:\Users\ykiv\AppData\Local\Microsoft\WindowsApps;C:\WebDriver\bin;

一番最後に C:\WebDriver\bin; が追加されていることがわかります。


ChromeDriverの起動確認

コマンドプロンプト か PowerShell で chromdriver を実行します。

■実行例

PS C:\Users> chromedriver
Starting ChromeDriver 99.0.4844.51 (d537ec02474b5afe23684e7963d538896c63ac77-refs/branch-heads/4844@{#875}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

起動に成功しました。


というわけで、無事に ChromeDriver がインストールできました



関連サイト

Windows 11 への WSL2 のインストール

Windows 11 環境で WSL (WSL2)を有効化する手順です


管理者権限で PowerShell を起動して、 wsl --install を実行します

■実行例

PS C:\Users\ykiv> wsl --install
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: GUI アプリ サポート
インストール中: GUI アプリ サポート
GUI アプリ サポート はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。


コマンドの完了後、OSの再起動を行います。

OS再起動後に Ubuntu のインストール等が進み自動でコンソールが起動して以下のように表示されます。

f:id:nini_y:20220308221612p:plain

ここでユーザ名とパスワードを設定します。

ユーザ名とパスワードを設定すると以下のようなメッセージが表示されて利用ができるようになっています。

passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Mar  8 22:17:55 JST 2022

  System load:  0.08               Processes:             8
  Usage of /:   0.4% of 250.98GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for eth0: 192.168.33.42
  Swap usage:   0%

0 updates can be installed immediately.
0 of these updates are security updates.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

This message is shown once once a day. To disable it please create the

winget で PowerShell 7.x をインストールする

Windows 11 環境で PowerShell のバージョン確認したら 5.x でした。


PowerShell 7.x の方が使い勝手がいいはずなので、PowerShell 7.x を winget を使ってインストールしてみます。


公式ドキュメント:

これに従ってインストールするだけの話です。


以下で winget を実行している部分は コマンドプロンプト上で実施しています。(PowerShell 上でも実行できます)

winget で アプリケーションのinstall

とりあえず、winget で Microsoft.PowerShell を search します。

■実行例

C:\Users\ykiv>winget search Microsoft.PowerShell
名前               ID                           バージョン ソース
------------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.2.1.0    winget
PowerShell Preview Microsoft.PowerShell.Preview 7.3.0.2    winget

今回は 安定板をインストールしたいので ID = Microsoft.PowerShell の方をインストールします。

winget install --id Microsoft.Powershell --source winget

■実行例

C:\Users\ykiv>winget install --id Microsoft.Powershell --source winget
見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.2.1.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.2.1/PowerShell-7.2.1-win-x64.msi
  ██████████████████████████████   100 MB /  100 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

途中で管理者権限での実行要求のダイアログが出てきたので、それを進めてインストールが完了しました。


Windows Terminal への追加 (JSON ファイル直接変更)

Windows Terminal にインストールした PowerShell を追加しておきます。

Windows Terminal の 設定 がGUIで出来ない場合、 Windows Terminal の 設定 で settings.json を開いて、profiles の list 配列の中に以下を追加(追記)します。

   {
       "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
       "hidden": false,
       "name": "PowerShell",
       "source": "Windows.Terminal.PowershellCore"
    }


および、defaultProfile を以下の内容で書き換えました

    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",


Windows Terminal の設定(GUI)

Windows Termianl の設定がGUIで可能なら、以下のように既定のプロファイル 等の変更がGUIで可能です

f:id:nini_y:20220308203634p:plain


起動する

Windows Terminal の規定のプロファイル(defaultProfile)を PowerShell に変更したので、Windows Terminal を立ち上げると PowerShell が起動します。

これで無事に Windows Terminal 上でも PowerShell が使えるようになりました。

f:id:nini_y:20220307235248p:plain


(追記) PowerShellをアップデートする

新バージョンのPowerShellがリリースされた場合のアップデートは以下のコマンドでできます。

winget upgrade --id Microsoft.Powershell --source winget

■実行例

C:\Users\ykiv>winget upgrade --id Microsoft.PowerShell
見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.2.2.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.2.2/PowerShell-7.2.2-win-x64.msi
  ██████████████████████████████   101 MB /  101 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました



関連エントリ

PowerShellのバージョン確認

PowerShell自体のバージョン確認方法をすぐ忘れてしまうので自分用のメモです。

バージョンを表示するには $PSVersionTable を実行すればよいです。


実行例は以下の通りです。

PS C:\Users\ykiv> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.22000.282
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.22000.282
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

バージョンは、この場合 5.1.22000.282 ということになります。


上記は Windows 11 ( バージョン: 21H2, OSビルド: 22000.527)の真っ新に近い環境で実行した結果です。
これ実行したときに気づきましたが、Windows 11 でも 最初に入ってる PowerShell は 5.x のバージョンのみのようです。

別途 7.x 等の PowerShell をインストールしたほうがよさそうです。



関連エントリ

winget - Windows用のパッケージマネージャー

Linux には当然のように存在し、Mac でも Homebrew というようなパッケージマネージャーが存在しています。

パッケージマネージャーを利用すれば、インストールしたいソフトウェアやドライバ、それらが依存関係を持つものをコマンド操作でインストールしたり、アップデートしたりできます。

Windowsだけ、入れたいソフトウェアごとにWebブラウザでアクセスしてダウンロードして。。。みたいな操作が必要でしたが、
winget というWindowsパッケージマネージャーが存在しています。割と最近まで存在を知りませんでした。


たまたま 新しいPC (OS: Windows 11) を購入し真っさらに近い状態なので winget を使って一部ソフトウェアをインストールしてみました。

今回試した環境は、 バージョン: 21H2, OSビルド: 22000.493 です

準備

上記にリンクしたMSの公式サイトに以下のように書いてあります

Microsoft Store に移動すると、アプリ インストーラーを更新するだけで、winget コマンド ライン ツールがインストールされます。

f:id:nini_y:20220306203432p:plain

Microsoft Storeにアクセスし、winget を検索するとアプリ インストーラーが表示されます。
このスクリーンショットでは表示できていませんが、アプリインストーラの更新ボタンを押します。


これで準備完了です。


winget の利用

DOSプロンプトで winget install {対象のパッケージ} で対象のパッケージ(ソフトウェア等)をインストールすることができます。


■7-Zipをインストールした例

C:\Users\ykiv>winget install 7-zip
見つかりました 7-Zip [7zip.7zip] バージョン 21.07
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://www.7-zip.org/a/7z2107-x64.exe
  ██████████████████████████████  1.46 MB / 1.46 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました


■WinSCPをインストールした例

C:\Users\ykiv>winget install WinSCP
見つかりました WinSCP [WinSCP.WinSCP] バージョン 5.19.6
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://sourceforge.net/projects/winscp/files/WinSCP/5.19.6/WinSCP-5.19.6-Setup.exe/download
  ██████████████████████████████  10.8 MB / 10.8 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました


無事に 7-Zip や WinSCP がインストールできていました。

f:id:nini_y:20220306204547p:plain

f:id:nini_y:20220306204452p:plain


利用可能なコマンド

winget コマンドだけで実行すると利用可能な各種コマンドが以下のように表示されます

C:\Users\ykiv>winget
Windows パッケージ マネージャー v1.2.10271
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用状況: winget [<コマンド>] [<オプション>]

使用できるコマンドは次のとおりです:
  install    指定されたパッケージをインストール
  show       パッケージに関する情報を表示します
  source     パッケージのソースの管理
  search     アプリの基本情報を見つけて表示
  list       インストール済みパッケージを表示する
  upgrade    指定されたパッケージをアップグレードします
  uninstall  指定されたパッケージをアンインストール
  hash       インストーラー ファイルをハッシュするヘルパー
  validate   マニフェスト ファイルを検証
  settings   設定を開くか、管理者設定を設定する
  features   試験的な機能の状態を表示
  export     インストールされているパッケージのリストをエクスポート
  import     ファイル中のすべてのパッケージをインストール

特定のコマンドの詳細については、そのコマンドにヘルプ引数を渡します。 [-?]

次のオプションを使用できます。
  -v,--version  ツールのバージョンを表示
  --info        ツールの一般情報を表示

詳細については、次を参照してください。 https://aka.ms/winget-command-help


■searchコマンドの実行例

C:\Users\ykiv>winget search "IntelliJ IDEA"
名前                                  ID                                   バージョン   一致               ソース
-----------------------------------------------------------------------------------------------------------------
IntelliJ IDEA Ultimate Edition (EAP)  JetBrains.IntelliJIDEA.Ultimate.EAP  221.4501.155 Tag: intellij idea winget
IntelliJ IDEA Community Edition (EAP) JetBrains.IntelliJIDEA.Community.EAP 221.4501.155 Tag: intellij idea winget
IntelliJ IDEA Ultimate Edition        JetBrains.IntelliJIDEA.Ultimate      213.6777.52                     winget
IntelliJ IDEA Educational Edition     JetBrains.IntelliJIDEA.Edu           213.6461.90                     winget
IntelliJ IDEA Community Edition       JetBrains.IntelliJIDEA.Community     213.6777.52                     winget

この実行例を見る限り、IntelliJ IDEA も winget でパッケージとして管理されているようです


補足

winget でソフトウェアをインストールした場合、.msi ファイルを手動で実行してインストールした場合と比較して、コンテキストメニュー(右クリックメニュー)には対象ソフトウェアが追加されない等の違いが出る場合があります。