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

时间:2013-05-08 23:53:01

标签: javascript phantomjs

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

你所问的几乎听不到。

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

  • 抓取捕获,以图像形式保存到磁盘
  • 输出到控制台以告知用户图像已准备就绪
  • 使用window.setTimeout等待30秒
  • 用户然后使用捕获结果
  • 编辑文本文件(例如/tmp/code.txt
  • 30秒后,window.setTimeout中的回调将显示为/tmp/code.txt

这不漂亮。但我无法想到任何其他方式。