Node.js PhantomJS:如何在文本框中键入文本?
我能想到的唯一解决方案是使用JS,但我无法将任何变量从幻影脚本传递到我尝试执行的JS。您应该看看。这是一个非常好的PhantomJS脚本,允许您轻松执行这种web行为 就与PhantomJS脚本的通信而言,目前您有几个可靠的选择:Node.js PhantomJS:如何在文本框中键入文本?,node.js,phantomjs,Node.js,Phantomjs,我能想到的唯一解决方案是使用JS,但我无法将任何变量从幻影脚本传递到我尝试执行的JS。您应该看看。这是一个非常好的PhantomJS脚本,允许您轻松执行这种web行为 就与PhantomJS脚本的通信而言,目前您有几个可靠的选择: 通过命令行参数传入数据 通过读取/写入文件来交换数据 让PhantomJS脚本通过get/POSTS调用Node.js脚本 是的,在C++和JS之间的QtWebKTK桥上有问题要上下传递。 它工作,但从JS到C++更好,而不是相反。 我们有许多问题需要解决,但这是需求
是的,在C++和JS之间的QtWebKTK桥上有问题要上下传递。 它工作,但从JS到C++更好,而不是相反。 我们有许多问题需要解决,但这是需求量最大的问题之一
同时,我通常像这样“装饰”页面
对象:
var page = require("webpage").create();
page.evaluateWithParams = function(func) {
var args = [].slice.call(arguments, 1),
str = 'function() { return (' + func.toString() + ')(',
i, ilen, arg;
for (i = 0, ilen = args.length; i < ilen; ++i) {
arg = args[i];
if (/object|string/.test(typeof arg)) {
str += 'JSON.parse(' + JSON.stringify(JSON.stringify(arg)) + '),';
} else {
str += arg + ',';
}
}
str = str.replace(/,$/, '); }');
return this.evaluate(str);
}
var a = 1, b = 2;
page.evaluateWithParams(function(arg1, args) {
// your code that uses arg1 and arg2
}, a, b);
希望这有帮助
伊万