Необходимо проверить - имеется ли у почты на сервисе yandex'а привязанность к номеру телефона. Для гугла с nightmare и mail.ru с обычным модулем request всё просто, так как там нет нужды вводить капчу. У яндекса же такая проблема присутствует.
На данный момент есть следующий код:
nightmare
.goto('https://passport.yandex.ru/auth?from=mail&origin=hostroot_homer_auth_ru&retpath=https%3A%2F%2Fmail.yandex.ru%2F&backpath=https%3A%2F%2Fmail.yandex.ru%3Fnoretpath%3D1')
.wait('#passp-field-login')
.type('#passp-field-login', 'somemail@yandex.ru')
.click('.button2_type_submit')
.wait('#passp-field-passwd')
.click('.passp-form-field__link > a')
.wait('.captcha__captcha__text')
.evaluate(function(){
return document.querySelector('.captcha__captcha__text').src;
})
.end()
.then(console.log)
.catch(error => {
console.error('Error:', error)
})
В итоге он возвращает саму картинку капчи. Необходимо же, чтобы данный скрипт вернул изображение и находился в процессе ожидания
с текущей сессией, дабы на другой стороне был получен ответ и алгоритм продолжался. В конце концов последний evaluate на финальной странице должен проверить, что конец является вводом номера телефона и вернуть ласт ответ.
Проблема в том, что nightmare возвращает лишь один результат. В идеале же нужно провернуть имитацию метода .cookies.get() вместе с evaluate.
Есть предположения, как это можно сделать? Или же есть другой способ сохранить сессию и ждать ответ прямо по первой пересылке evaluate? Либо, как ещё сэмулировать браузер, дабы проверить первоначальную задачу?