在PhantomJS / CasperJS中隐藏用户输入

时间:2016-05-09 11:31:44

标签: javascript phantomjs casperjs

我有一个CasperJS测试套件,我必须使用用户名和密码填写登录表单。由于我不想将密码放入代码中,我做了类似的事情:

system.stdout.writeLine("Please enter password:");
var password = system.stdin.readLine();
this.fill('form:first-of-type',{
    'username': user,
    'password': password
},true);

这样可行,但它会在控制台上留下密码,任何人都可以在其中阅读。有没有办法隐藏视图中的实际输入,或在其位置显示********?

或者是否有其他方法可以解决我错过的问题?

编辑:我尝试使用execFile,但是当我尝试运行read时它没有做任何事情,它只是返回,就像什么都没发生过一样。其他外部程序工作正常。

1 个答案:

答案 0 :(得分:0)

我找到了一个粗略的解决方法:

system.stdout.write("Please enter password:");
var password = system.stdin.readLine();
system.stdout.write("\033[1APlease enter password:                      \n");

将光标向上移动一行,然后打印密码。问题仍然存在,只有在输入之后才隐藏密码。如果有人在看你输入,那就不会有太多帮助。至少它以后不会在控制台上显示出来。