Selenium IDEを Command-line Runnerで動かしCronで動かしたが
エラー内容
env: node: No such file or directory
チーン
解決策
パスを通す。
Selenium IDE使ってますか?
まぁまぁ自由度が高いし簡単に作れますし楽しいですね。
nodeがない
作成したSelenium IDEをコマンドライン1で実行しました。
定期実行させる為にcronで実行すると以下のエラーが表示。
env: node: No such file or directory
コマンドラインで動かすには以下のものがインストールされていないとダメです。
- node version 8 or 10
- npm
- selenium-side-runner
- 使用したいブラウザのドライバ
いやインストールしてるわ
これらのものはnodebrew経由でインストールしていたので、
$ ls ~/.nodebrew/current/bin/
chromedriver nodebrew npx
node npm selenium-side-runner
入ってる。
PATHを通さんとダメやん
そうそう。Command-line Runnerを使用する為に必要なものが
- /usr/bin
- /bin
以外にインストールされている場合は、明示的にPATHを通してあげないとダメなんですよね。
これたまにしかcronをしなかったりすると忘れるんですよね〜〜
なんでPATHを通さんといけんの?
ここで疑問。
cdとかrmコマンドは使えるやん。なんでcronになるとPATHを通さんといけんのよ!
気になりますね。
cronの環境変数を確認
cronの環境変数を確認してみます
00 13 ** 6 env> /tmp/cron_env.log // 土曜日の13時に確認したのでこんな時間指定。
はい、logに吐き出したので見てみると、
$ cat /tmp/cron_env.log
SHELL=/bin/sh
USER=michida
PATH=/usr/bin:/bin
PWD=/Users/michida
SHLVL=1
HOME=/Users/michida
LOGNAME=michida
_=/usr/bin/env
環境変数で設定されているのは /usr/bin
と /bin
ですね。
PATH通しました。
ということで1行目でパスを通しておきます。
PATH=/usr/bin:/bin:/Users/michida/.nodebrew/current/bin
00 12 ** 1-5 ...
他の環境変数を書き換えたい場合などは同じように記述しておけば大丈夫です。