如何根据梦魇中的条件做些什么?

时间:2016-08-02 15:17:50

标签: javascript node.js nightmare

我正在使用Nightmare创建一个脚本,我的脚本步骤必须是:

  1. 打开页面

  2. 使用Cookie记录检查

  3. 未记录登录

  4. 完成所有其余任务

  5. 像这样的代码:

    nightmare
        .goto(url)
        .cookies.get('cookie_key')
        .then(cookie => {
    
        })
        ;
    

    在执行其他必要任务之前,如果未记录,如何进行梦魇登录?

1 个答案:

答案 0 :(得分:1)

@ 4castle是对的:您应该可以将if块直接放在.then()中。例如:

nightmare
  .goto(url)
  .cookies.get('cookie_key')
  .then(cookie => {
    if(cookie){
      //perform your login action
      return nightmare
        .type('#username', username)
        .type('#password', password)
    } else {
      //if you need to perform other logic 
      //if you're already logged in, do it here
      //otherwise, this `else` can be omitted
    }
  })
  .then(()=>{
    return nightmare
      .action()
      .action()
      //etc.
  })

如需进一步阅读,您可能需要查看Running Multiple Steps中的nightmare-examples