我最近开始学习CasperJS,我正在尝试登录YouTube。这是我目前的代码:
// XPathSignInButton is predefined
var Username = 'user123';
var Password = 'pass123';
casper.waitForSelector(xPathSignInButton, function() {
this.thenEvaluate(function() {
$('#Email').val(Username);
$('#Passwd').val(Password);
});
});
上面的代码不会操纵输入字段(不会在其中写入),但是如果我用thenEvaluate()
替换this.fillSelectors()
,则可以正常访问变量并且一切正常:
// XPathSignInButton is predefined
// signInFormSelector is predefined
casper.waitForSelector(xPathSignInButton, function() {
this.fillSelectors(signInFormSelector, {
'input[name="Email"]': Username,
'input[name="Passwd"]': Password
});
});
我首先想到我调用jQuery的方式存在问题,但是当我用实际字符串替换变量时,例如:$('#Email').val('user123');
和$('#Email').val('pass123');
- 它就像一个魅力。
我的问题是如何从thenEvaluate()
函数中访问变量。它有可能吗?