var page = require('webpage').create(); page.open("http://localhost:3000/test/index.html", function (status) { if (status != "success") { console.log("page couldn't be loaded successfully"); phantom.exit(1); } waitFor(function () { return page.evaluate(function () { var output = document.getElementById('status'); if (!output) { return false; } return (/^(\d+ failures?|all passed)/i).test(output.innerText); }); }, function () { var failed = page.evaluate(function () { return window.failed; }); var output = page.evaluate(function () { return document.getElementById('output').innerText + "\n" + document.getElementById('status').innerText; }); console.log(output); phantom.exit(failed > 0 ? 1 : 0); }); }); function waitFor (test, cb) { if (test()) { cb(); } else { setTimeout(function () { waitFor(test, cb); }, 250); } }