我有一个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
时它没有做任何事情,它只是返回,就像什么都没发生过一样。其他外部程序工作正常。
答案 0 :(得分:0)
我找到了一个粗略的解决方法:
system.stdout.write("Please enter password:");
var password = system.stdin.readLine();
system.stdout.write("\033[1APlease enter password: \n");
将光标向上移动一行,然后打印密码。问题仍然存在,只有在输入之后才隐藏密码。如果有人在看你输入,那就不会有太多帮助。至少它以后不会在控制台上显示出来。