相关疑难解决方法(0)

将变量传递给page.evaluate - PhantomJS

是否可以在页面中传递变量.在我的情况下,我的情况如下?

function myFunction(webpage, arg1, arg2){

var page = require('webpage').create();

page.viewportSize = { width: 1920, height: 1080 };

page.open(webpage, function (status){

    if (status == 'success') {

            page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js", function(){

                page.evaluate(function(){

                    arg = arg1 + arg2;
                    console.log(arg);

                });

            });

    } 

    else { phantom.exit(); }

});

}
Run Code Online (Sandbox Code Playgroud)

我尝试了在互联网上找到的几种方法,但实际上没有什么可以得到它的变量.

预先感谢您的帮助 :)

phantomjs

22
推荐指数
1
解决办法
2万
查看次数

无法从CasperJS中的thenEvaluate()函数中访问变量

我最近开始学习CasperJS,我正在尝试登录YouTube.这是我目前的代码:

// XPathSignInButton is predefined
var Username = 'user123';
var Password = 'pass123';

casper.waitForSelector(xPathSignInButton, function() {
    this.thenEvaluate(function() {
        $('#Email').val(Username);
        $('#Passwd').val(Password);
    });
}); 
Run Code Online (Sandbox Code Playgroud)

上面的代码不会操作输入字段(不会在其中写入),但是如果我替换thenEvaluate()this.fillSelectors(),则会正常访问变量并且一切正常:

// XPathSignInButton is predefined
// signInFormSelector is predefined
casper.waitForSelector(xPathSignInButton, function() {
    this.fillSelectors(signInFormSelector, {
        'input[name="Email"]': Username,
        'input[name="Passwd"]': Password
    });
});
Run Code Online (Sandbox Code Playgroud)

我首先想到我如何调用jQuery有一个问题,但当我用实际的字符串替换变量时:$('#Email').val('user123');$('#Email').val('pass123');- 它就像一个魅力.

我的问题是如何从thenEvaluate()函数中访问变量.它可能吗?

javascript scope phantomjs casperjs

2
推荐指数
1
解决办法
2201
查看次数

标签 统计

phantomjs ×2

casperjs ×1

javascript ×1

scope ×1