Is There A Way To Read User Input From Keyboard For PhantomJS?
I'm using PhantomJS to login website and the captcha has to be inputed manually. How can I save the captcha image to disk, and then input the captcha by hand in PhantomJS console?
Solution 1:
I had the same problem, just use the system module in combination with a page.render() and some argument passing to 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;
}
Solution 2:
What you're asking sounds nearly impossible.
If I were desperate to do something like this I might consider the following approach:
- grab the capture, save to disk as image
- output to the console to tell user image is ready
- use window.setTimeout to wait 30 seconds
- user then edits a text file (e.g.
/tmp/code.txt
) with capture result - after 30 seconds the callback in window.setTimeout will read
/tmp/code.txt
It's not pretty. But I can't think of any other way off the top of my head.
Post a Comment for "Is There A Way To Read User Input From Keyboard For PhantomJS?"