Я использую node-horseman
в проекте, который создает оповещения в Оповещения Google. Пользователь, который еще не подключился, должен войти в систему со своей учетной записью Google через наше приложение, чтобы затем получить список фидов, который у него есть. Приложение в основном используется для автоматической публикации в новостях на страницах Facebook о любом созданном RSS-канале.Всадник/PhantomJS - Как проверить наличие ошибок и предотвратить создание файлов cookie?
До сих пор функция login
заключается в следующем:
* login() {
if (!this.email || !this.password) {
this.addError(HTTPResponse.STATUS_FORBIDDEN, 'E-mail and Password are necessary')
return false
}
const horseman = new Horseman({ cookiesFile })
return new Promise((resolve, reject) => {
horseman
.open('https://accounts.google.com')
.type('input[type="email"]', this.email)
.click('#next')
.wait(1000)
.type('input[type="password"]', this.password)
.click('#signIn')
.wait(3000)
.close()
setTimeout(function() {
resolve(true)
}, 3000)
})
}
Очень просто. Он регистрируется и создает cookiesFile
, чтобы иметь возможность создавать новые каналы и извлекать существующие. Но это абсолютно не поддающееся проверке, потому что нет возможности проверить наличие ошибок, и я не мог найти пример или сделать что-нибудь. Я пытался использовать evaluate()
и проверить, если это .error_msg
тег, но он выдает ошибку в phantomJS Unhandled rejection fn
:
...
.wait(1000)
.evaluate(function() {
if (jQuery('.error-msg').length > 0) {
this.addError(HTTPResponse.STATUS_INTERNAL_SERVER_ERROR, 'Error!')
return false
}
})
...
Он не бросает какие-либо ошибки, не прерывает выполнение и по-прежнему создает плохие куки-файл.
Что этот метод 'this.addError'? Это не метод вашего приложения node.js, не так ли? – Vaviloff
Этот метод находится в моем проекте для хранения ошибок и отображения в пользовательском интерфейсе. Класс операции расширяет базовую операцию, которая имеет этот метод. – mfgabriel92
Вы знаете, как мне помочь? – mfgabriel92