我正在使用 PhantomJS 登录网站,验证码必须手动输入。如何将验证码图像保存到磁盘,然后在 PhantomJS 控制台中手动输入验证码?
问问题
4851 次
2 回答
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;
}
于 2013-07-24T08:15:33.570 回答
1
你要问的听起来几乎是不可能的。
如果我不顾一切地做这样的事情,我可能会考虑以下方法:
- 抓取捕获,作为图像保存到磁盘
- 输出到控制台以告诉用户图像已准备好
- 使用 window.setTimeout 等待 30 秒
/tmp/code.txt
然后用户编辑带有捕获结果的文本文件(例如)- 30 秒后 window.setTimeout 中的回调将读取
/tmp/code.txt
这不漂亮。但我想不出任何其他方法。
于 2013-05-23T09:55:14.690 回答