有没有办法从键盘读取PhantomJS的用户输入?

azt*_*ack 12 javascript phantomjs

我正在使用PhantomJS登录网站,必须手动输入验证码.如何将验证码图像保存到磁盘,然后在PhantomJS控制台中手动输入验证码?

tox*_*e20 19

我有同样的问题,只需将系统模块与page.render()和一些参数传递给page.evaluate一起使用.

page.render('pagewithcatpcha.jpg');
page.injectJs('http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js');

var arg1 = consoleRead();

page.evaluate(function (arg1) {
 $('.yourFormBox').val(arg1);
 $('.yourForm').submit();
}, arg1);

function consoleRead() {
 var system = require('system');

 system.stdout.writeLine('CaptchaCode: ');
 var line = system.stdin.readLine();

 return line;
}
Run Code Online (Sandbox Code Playgroud)


PP.*_*PP. 1

你问的问题听起来几乎不可能。

如果我迫切想做这样的事情,我可能会考虑以下方法:

  • 抓取捕获内容,将其作为图像保存到磁盘
  • 输出到控制台告诉用户图像已准备好
  • 使用 window.setTimeout 等待 30 秒
  • /tmp/code.txt然后用户编辑带有捕获结果的文本文件(例如)
  • 30秒后,window.setTimeout中的回调将读取/tmp/code.txt

这并不漂亮。但我脑子里想不出任何其他办法。