首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到变量: casper

找不到变量: casper
EN

Stack Overflow用户
提问于 2014-08-19 09:35:10
回答 1查看 1.2K关注 0票数 0

我试图创建一个提交登录表单的过程,但由于某种原因,我无法读取casper.cli.argscasper.evaluate函数中的值。

代码语言:javascript
复制
var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug'
});

casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
});

casper.on("page.error", function(msg, trace) {
    this.echo("Page Error: " + msg, "ERROR");
});

var url = 'https://www.secure.pixiv.net/login.php';

casper.start(url, function() {
    console.log("page loaded");
    //this.test.assertExists('form#login_form', 'form is found');
    casper.evaluate(function() {
        document.getElementById("login_pixiv_id").value=(casper.cli.args[0]);
        document.getElementById("login_password").value=(casper.cli.args[1]);
        document.getElementById("login_submit").click();

    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 09:41:42

evaluate函数是沙箱化的。一切都必须明确传递。CasperJS确实将__utils__对象注入页面上下文,但并不是所有东西都可以访问,比如casper.cli属性。

您必须显式传递以下值:

代码语言:javascript
复制
casper.evaluate(function(id, password) {
    document.getElementById("login_pixiv_id").value = id;
    document.getElementById("login_password").value = password;
    document.getElementById("login_submit").click();
}, casper.cli.args[0], casper.cli.args[1]);

是完整的脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25380083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档