コマンドラインまたはNodeモジュールからブラウザでURLへ簡単にアクセスさせる
browser-runnerという指定したURLへIE、Firefox、Chrome、PhantomJSなどブラウザでアクセスさせられるシンプルなNodeモジュールを書きました。
コマンドライン または Nodeモジュールとして利用することができます。 ブラウザはWebDriverに対応していれば何でも動きます。
作った目的
このbrowser-runnerはローカルのHTMLにも対応しているのですが、 PhantomJSであるHTMLにアクセスしたログを見たいときにわざわざJSを書く必要があるのが面倒だったのでこれを作りました。
ローカルHTMLは自動的にローカルサーバを立てた上でアクセスするのでXHRなどもちゃんと動作するようになってます。
インストール
コマンドラインツールとして使う場合は -g
オプション付きでインストール
npm install -g browser-runner
-b
オプションでブラウザ名、引数にHTMLのファイルパス or URLを指定すれば、そのブラウザでアクセスしてくれます。
$ browser-runner -b firefox path/to/index.html
アクセスするとconsole.log
の内容はそのまま標準出力に出してくれたりします。
PhantomJSの場合は_phantomjs.log_あたりにも出力されます。
Nodeモジュールとして使う
browser-runnerはNodeモジュールとしても使えます。
example/example.jsにURLにアクセスするサンプルがありますが、以下のように書くだけです。
var BrowserRunner = require("browser-runner");
var runner = new BrowserRunner({
"browser": "phantomjs"
});
runner.runBrowser("http://example.com").then(function () {
console.log("FINISH EXAMPLE!");
}).catch(console.error.bind(console));
ローカルファイルへのアクセスも同じでexample/local-example.jsにサンプルがありますが、自動的にURLかどうかをみて判別します。
var BrowserRunner = require("browser-runner");
var path = require("path");
var runner = new BrowserRunner({
"browser": "phantomjs"
});
runner.runBrowser(path.join(__dirname, "local.html")).then(function () {
console.log("FINISH LOCAL EXAMPLE!");
}).catch(console.error.bind(console));
またローカルサーバを内蔵していますが、そこに任意のサーバスクリプトをかませたり、runner.runBrowser
をするとselenium-webderiverオブジェクトが渡ってくるので、それを使ってwebdriver経由でブラウザの操作を追加することができます。
例えば、URLにアクセスしてある要素をクリックして、class属性が変わったかをテストするというようなものが書けたりします。(若干おまけ感がある)
browser-runnerの仕組みはReftest-runnerのものがベースでそれを別モジュールに取り出したという感じです。
類似
- juliangruber/browser-run
- Tapeと合わせて使うと便利だそうです
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。