NodeJSのライブラリ、selenium-standaloneはご存知でしょうか?
NodeJSとJavaを事前にインストールしておく必要はありますが、Windowsでもコマンド一発で、Selenium + インストール済みのブラウザに対応したWebDriverを自動でインストールしてくれるのでとても便利ですね。
さて、Windowsで開発している人の多くはWSL(Windows Subsystem for Linux)を利用しているかと思いますが、Windows側にインストールしたブラウザをselenium-standaloneで自動操作するには、selenium-standaloneもWindows側でインストールしておかないといけません。
とはいえ、わざわざSeleniumを使いたい時だけPowerShellを起動するのも面倒ですし、Linux側から起動できるといいですね。
というわけで、その方法がこちらです。
cmd.exe /c selenium-standalone.cmd install # SeleniumやWebDriverなどのダウンロード
cmd.exe /c selenium-standalone.cmd start # Seleniumサーバの開始
上記をbash上で実行すると、Windows側のselenium-standaloneコマンドが実行されます。
PowerShellやコマンドプロンプトで selenium-standalone
を実行する場合と同じことになります。
解説
WSLからWindows側のコマンドを実行するには、実行したいコマンドを 拡張子付き で指定する必要があります。
例えば、bash上で下記のように実行すると、Windows側のselenium-standaloneが呼び出されます。
$ selenium-standalone.cmd start
コマンドの拡張子を知りたい場合は、PowerShellでGet-Command
を使うと知ることができます。
PS C:\Users\tsemura > Get-Command selenium-standalone
CommandType Name Version Source
----------- ---- ------- ------
Application selenium-standalone.cmd 0.0.0.0 C:\Users\tsemura\AppData\Roaming\npm\sel...
さて、ただの実行ファイル(.exe
ファイル)であれば単に拡張子付きで実行すればよいのですが、バッチファイルなどの場合はこのままでは実行できないので、コマンドプロンプト経由で実行する必要があります。
と言っても、Windows側でコマンドプロンプトを起動する必要はありません。bashでcmd.exe
を実行し、実行時オプションで実行したいコマンドを渡してあげればOKです。
cmd.exe /c selenium-standalone.cmd start
というわけで、↑が最終的に実行するコマンドになります。
頻繁に使う人はaliasなどに登録しておくとよいでしょう。
参考