Node.js 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++更好,而不是相反。 我们有许多问题需要解决,但这是需求

我能想到的唯一解决方案是使用JS,但我无法将任何变量从幻影脚本传递到我尝试执行的JS。

您应该看看。这是一个非常好的PhantomJS脚本,允许您轻松执行这种web行为

就与PhantomJS脚本的通信而言,目前您有几个可靠的选择:

  • 通过命令行参数传入数据
  • 通过读取/写入文件来交换数据
  • 让PhantomJS脚本通过get/POSTS调用Node.js脚本

  • 是的,在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);
    
    希望这有帮助

    伊万