首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >登录Steam - CasperJS

登录Steam - CasperJS
EN

Stack Overflow用户
提问于 2015-11-06 06:47:31
回答 2查看 260关注 0票数 0

我想登录蒸汽与CasperJS,但它就是不想工作。

这是我的代码:

代码语言:javascript
运行
复制
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说:

代码语言:javascript
运行
复制
[info] [remote] submitting form to #, HTTP POST
[warning] [remote] unable to submit form

我还使用了函数"StartLogin“(我在steam的源码中找到了该函数),并使用下面的代码执行它:

代码语言:javascript
运行
复制
casper.evaluate(function(){
    StartLogin();
});

但是CasperJS提出了这个错误:

代码语言:javascript
运行
复制
Page Error: ReferenceError: Can't find variable: StartLogin

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

EN

回答 2

Stack Overflow用户

发布于 2015-11-06 18:52:44

你的问题很模糊,但我正试着帮你

您必须知道casper.evaluate和经典的assert语句之间的区别,我认为您混淆了其中的某些内容

casper.evaluate在phatom上下文中计算特定的语句,它不计算任何函数。如果你想计算一个函数的正确的return,可以这样使用它:

代码语言:javascript
运行
复制
var val = casper.evaluate(function() {if(true) return 'foo';});
test.assertEquals(val,'foo');

我希望我能为您提供一点帮助,有关更多信息,请查看:

  1. CasperJS evaluate
  2. Tester module casper
  3. CasperJS Plugin for Chrome
票数 0
EN

Stack Overflow用户

发布于 2015-11-11 05:30:58

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

取出this.click,然后在末尾添加casper.then(function(){})以执行下一条命令。

基本上,您正在尝试单击一个不存在的按钮,因为您已经通过提交表单转到了下一页。

希望这能有所帮助!

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

https://stackoverflow.com/questions/33556263

复制
相关文章

相似问题

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