node-webkit 网站测试实用程序
node-webkit website test utility
我正在尝试使用 nw.js 构建一个工具,它可以打开网站 window、加载 jQuery 库和带参数的 运行 脚本,例如验证页面标题文本和 return 结果返回主脚本。任何人都可以提供有效代码示例吗?
我尝试做到这一点,当我打开通常的 window 并尝试调用 win.eval
它在 documentation 中的说法时它不起作用。但是我可以访问所有子 window 对象。
我发现有一个选项:inject-js-end,它允许我们在页面中注入本地文件。
我将注入的文件示例:
// checker.js
// this file will run in newly opened page.
console.log("checker loaded");
window.myChecker = {
listeners: [],
done: function (callback) {
if (this.result) callback(this.result);
else this.listeners.push(callback);
},
start: function () {
this.result = {a: 123, title: document.title};
this.listeners.forEach(function (fn) { fn(this.result); });
}
};
myChecker.start();
然后我们可以打开任何 url 并注入我们的检查器:
var win = gui.Window.open('https://github.com', {
show: true, // make it false to make window hidden
"inject-js-end": "./checker.js"
});
win.on('loaded', function () {
console.log("window loaded");
win.window.myChecker.done(function (result) {
console.log("Result is", result);
});
});
您应该能够看到如下内容:
[87518:0301/142832:INFO:CONSOLE(1)] ""checker loaded"", source: (1)
[87518:0301/142835:INFO:CONSOLE(107)] ""window loaded"", source: file:///my_path/index.js (107)
[87518:0301/142835:INFO:CONSOLE(109)] ""Result is" {"a":123,"title":"GitHub \u00B7 Build software better, together."}", source: file:///my_path/index.js (109)
可能您想在 checker.js
中添加 jQuery 并做一些不同的事情,因此最好使其 return 结果异步。
我使用 "inject-js-end" 来确保所有内容在我 运行 检查器时准备就绪,它也可以与 "inject-js-start".
一起使用
我正在尝试使用 nw.js 构建一个工具,它可以打开网站 window、加载 jQuery 库和带参数的 运行 脚本,例如验证页面标题文本和 return 结果返回主脚本。任何人都可以提供有效代码示例吗?
我尝试做到这一点,当我打开通常的 window 并尝试调用 win.eval
它在 documentation 中的说法时它不起作用。但是我可以访问所有子 window 对象。
我发现有一个选项:inject-js-end,它允许我们在页面中注入本地文件。
我将注入的文件示例:
// checker.js
// this file will run in newly opened page.
console.log("checker loaded");
window.myChecker = {
listeners: [],
done: function (callback) {
if (this.result) callback(this.result);
else this.listeners.push(callback);
},
start: function () {
this.result = {a: 123, title: document.title};
this.listeners.forEach(function (fn) { fn(this.result); });
}
};
myChecker.start();
然后我们可以打开任何 url 并注入我们的检查器:
var win = gui.Window.open('https://github.com', {
show: true, // make it false to make window hidden
"inject-js-end": "./checker.js"
});
win.on('loaded', function () {
console.log("window loaded");
win.window.myChecker.done(function (result) {
console.log("Result is", result);
});
});
您应该能够看到如下内容:
[87518:0301/142832:INFO:CONSOLE(1)] ""checker loaded"", source: (1)
[87518:0301/142835:INFO:CONSOLE(107)] ""window loaded"", source: file:///my_path/index.js (107)
[87518:0301/142835:INFO:CONSOLE(109)] ""Result is" {"a":123,"title":"GitHub \u00B7 Build software better, together."}", source: file:///my_path/index.js (109)
可能您想在 checker.js
中添加 jQuery 并做一些不同的事情,因此最好使其 return 结果异步。
我使用 "inject-js-end" 来确保所有内容在我 运行 检查器时准备就绪,它也可以与 "inject-js-start".
一起使用