webshot2でEdgeを使う

Rでスクリーンショットをとるパッケージにwebshot2がある。 パッケージのページによるとchromoteのパッケージを呼び出してChromeを動かしているようだ。 そこには次のようにも書かれている。

You also need to have the Chrome browser installed on your system. You can also use other browsers based on Chromium, such as Chromium itself, Edge, Vivaldi, Brave, or Opera.

ということで試しにEdgeで動かしてみることにする

Edgeのパスを確認

私はMacを使っている。 Edgeの本体は「アプリケーション > Edge > Contents > MacOS」と辿ったところにある。 パスだと「/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge」である。

環境変数にこのパスを設定

先に述べたようにwebshot2はchromoteのパッケージを通してChromeを動かしている。 Rのコンソールでchromote::find_chrome()と打つと,初期ではGoogle Chromeがある場所を指すようになっている。 例えば私の環境だと何も設定しないと次のような返り値である。

chromote::find_chrome()
# [1] "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

chromote::find_chrome()という関数の中身を覗くと"CHROMOTE_CHROME"という環境変数の値が空でない場合には,その環境変数に設定されたパスを返すようである。 この返り値がchromoteの各所で使われている。 したがって環境変数に"CHROMOTE_CHROME"にEdgeのパスを指定しておけばEdgeで動く。

Sys.setenv(CHROMOTE_CHROME = "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge")
chromote::find_chrome()
# [1] "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"

実際にこのように設定するとPCにChromeが入っていなくともEdgeが入っていればwebshot2は正しく動作するようである。