Javascript 登录Steam-CasperJS
我想用CasperJS登录Steam,但它就是不想工作 这是我的代码: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
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()
调用没有做任何事情,因为它是空的,并且在它之前执行它之后的所有内容。移动填充并单击进入该功能。