是否可以在页面中传递变量.在我的情况下,我的情况如下?
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)
我尝试了在互联网上找到的几种方法,但实际上没有什么可以得到它的变量.
预先感谢您的帮助 :)
我最近开始学习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()函数中访问变量.它可能吗?