如何将 html 文件的控制台输出带入 phantomjs
How to take the console output of html file into phantomjs
我正在 运行ning qunit 测试,在一个文件中使用 html 文件,而那个 html 文件我正在 运行ning 来自 phantom js。
当我通过浏览器 运行 宁 html 文件时,我在控制台中得到输出,但是当我尝试 运行 使用 phantom js 时,我没有得到控制台输出我调用 html 文件的另一个 js 文件。
我提供这两个文件:
HTML 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JUnit reporter for QUnit</title>
<link rel="stylesheet" href="qunit.css">
<script src="qunit.js"></script>
<script>
QUnit.config.reorder = false;
</script>
<script src="qunit-reporter-junit.js"></script>
<script src=" http://requirejs.org/docs/release/2.2.0/minified/require.js"></script>
<script>
QUnit.jUnitDone(function(data) {
var console = window.console;
if (console) {
console.log(data.xml);
}
});
</script>
<script src="qunit-reporter-junit.test.js"></script>
</head>
<body>
<div id="qunit"></div>
</body>
</html>
Js文件:
var system = require('system');
var fs = require('fs');
var page = require('webpage').create();
if (system.args.length === 1) {
console.log('Pass the path/to/testfile.js as argument to run the test.');
phantom.exit();
} else {
var url = "file:///C:/Users/Admin/Desktop/js/index.html"; // e.g. 'test/unit/tests.html'
console.log("Opening " + url);
}
page.open(url, function (status) {
console.log("Status: " + status);
if (status === "success") {
setTimeout(function () {
var path = 'results.xml';
var output = page.evaluate(function () {
// wants to take console output from html page
.....................................?
});
fs.write(path, output, 'w');
console.log("Wrote JUnit style output of QUnit tests into " + path);
console.log("Tests finished. Exiting.");
phantom.exit();
}, 3000);
} else {
console.log("Failure opening" + url + ". Exiting.");
phantom.exit();
}
});
谁能建议我如何从 html 文件获取控制台输出?
提前致谢。
如果您的测试类似于 this example,那么要获得测试结果,您应该请求 #qunit-testresult
元素的内容。
var output = page.evaluate(function(){
return document.getElementById("qunit-testresult").innerText
});
我正在 运行ning qunit 测试,在一个文件中使用 html 文件,而那个 html 文件我正在 运行ning 来自 phantom js。
当我通过浏览器 运行 宁 html 文件时,我在控制台中得到输出,但是当我尝试 运行 使用 phantom js 时,我没有得到控制台输出我调用 html 文件的另一个 js 文件。
我提供这两个文件: HTML 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JUnit reporter for QUnit</title>
<link rel="stylesheet" href="qunit.css">
<script src="qunit.js"></script>
<script>
QUnit.config.reorder = false;
</script>
<script src="qunit-reporter-junit.js"></script>
<script src=" http://requirejs.org/docs/release/2.2.0/minified/require.js"></script>
<script>
QUnit.jUnitDone(function(data) {
var console = window.console;
if (console) {
console.log(data.xml);
}
});
</script>
<script src="qunit-reporter-junit.test.js"></script>
</head>
<body>
<div id="qunit"></div>
</body>
</html>
Js文件:
var system = require('system');
var fs = require('fs');
var page = require('webpage').create();
if (system.args.length === 1) {
console.log('Pass the path/to/testfile.js as argument to run the test.');
phantom.exit();
} else {
var url = "file:///C:/Users/Admin/Desktop/js/index.html"; // e.g. 'test/unit/tests.html'
console.log("Opening " + url);
}
page.open(url, function (status) {
console.log("Status: " + status);
if (status === "success") {
setTimeout(function () {
var path = 'results.xml';
var output = page.evaluate(function () {
// wants to take console output from html page
.....................................?
});
fs.write(path, output, 'w');
console.log("Wrote JUnit style output of QUnit tests into " + path);
console.log("Tests finished. Exiting.");
phantom.exit();
}, 3000);
} else {
console.log("Failure opening" + url + ". Exiting.");
phantom.exit();
}
});
谁能建议我如何从 html 文件获取控制台输出?
提前致谢。
如果您的测试类似于 this example,那么要获得测试结果,您应该请求 #qunit-testresult
元素的内容。
var output = page.evaluate(function(){
return document.getElementById("qunit-testresult").innerText
});