Javascript 登录Steam-CasperJS

Javascript 登录Steam-CasperJS,javascript,login,casperjs,steam,Javascript,Login,Casperjs,Steam,我想用CasperJS登录Steam,但它就是不想工作 这是我的代码: var url = 'https://steamcommunity.com/login/'; casper.start(url, function() { console.log("page loaded"); casper.waitForSelector("form input[name='username']", function() { }, true); this.fill('form[n

我想用CasperJS登录Steam,但它就是不想工作

这是我的代码:

var url = 'https://steamcommunity.com/login/';

casper.start(url, function() {
    console.log("page loaded");


casper.waitForSelector("form input[name='username']", function() {
}, true);   
    this.fill('form[name="logon"]', { 
        username: 'username', 
        password:  'password'
    }, true);
    this.click('form input#SteamLogin');
});
执行此代码后,CasperJS说:

[info] [remote] submitting form to #, HTTP POST
[warning] [remote] unable to submit form
我还使用了函数“startogin”(我在steam的源代码中找到了该函数),并使用以下命令执行它:

casper.evaluate(function(){
    StartLogin();
});
但是CasperJS犯了这个错误:

Page Error: ReferenceError: Can't find variable: StartLogin

如果有人能帮助我,我将非常感激:)

你的问题很模糊,但我正在尽力帮助你

你必须知道
casper.evaluate
和经典的
assert
语句之间的区别,我认为你混淆了一些东西

casper.evaluate
在phatom上下文中计算特定语句,它不计算任何函数。 如果要计算函数的正确
返回值
,请按如下方式使用:

var val = casper.evaluate(function() {if(true) return 'foo';});
test.assertEquals(val,'foo');
我希望能为您提供一点帮助,有关更多信息,请参阅:


  • 在fill函数中,您将submit bool设置为true,以便在填写用户名和密码后提交表单

    取出
    this。单击
    ,然后在末尾添加
    casper。然后(function(){})
    以执行下一个命令

    基本上,您试图单击一个不存在的按钮,因为您已经通过提交表单进入下一页


    希望这有帮助

    您使用哪个PhantomJS版本?请注册到
    resource.error
    page.error
    remote.message
    casper.page.onResourceTimeout
    事件()。可能有错误。PhantomJS是1.9.7,CasperJS是1.1.0-beta3。这些错误事件不会打印任何内容,因此我认为没有错误。它找不到StartLogin的原因是casperJS源中确实缺少该函数。但是如果我用浏览器查看源代码,我可以看到这个函数。您的
    waitForSelector()
    调用没有做任何事情,因为它是空的,并且在它之前执行它之后的所有内容。移动填充并单击进入该功能。