Как сделать что-то в зависимости от состояния в Nightmare?

Я создаю скрипт, используя Nightmare, необходимые шаги моих скриптов:

  1. Откройте страницу

  2. Проверка регистрируется с помощью cookie

  3. Логин не зарегистрирован

  4. Выполнить все остальные задания

Что-то вроде этого кода:

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

    })
    ;

Как я могу войти в кошмар, если он не зарегистрирован, прежде чем выполнять остальные необходимые задачи?


person Lai32290    schedule 02.08.2016    source источник
comment
Разве вы не можете просто добавить оператор if в свой then()?   -  person 4castle    schedule 02.08.2016


Ответы (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.
  })

Для дальнейшего чтения вы можете взглянуть на Выполнение нескольких шагов в nightmare-examples.

person Ross    schedule 03.08.2016