XShell 自动输入验证码
场景:
在公司登陆线上机器需要先到门神,然后手动输入验证,验证通过才可以登陆线上机器。
但是,获取验证码这个过程是枯燥无味的。所以,可以通过python 模拟API请求,获取验证码。具体的python代码就不贴出来了,这个跟各个公司系统有关,差异较大。
接下来的问题是,如何将python代码获取到的验证码输入到XShell里面。模拟手动输入呢?
解决办法
先看代码
Sub Main
xsh.Screen.WaitForString("login")
Set oShell1 = CreateObject("WSCript.shell")
Set oShell = oShell1.Exec("C:\ProgramData\Anaconda3\python.exe D:\doc\script\doorgod.py")
Do While Not oShell.StdOut.AtEndOfStream
cnt = oShell.StdOut.ReadAll()
loop
xsh.Screen.Send(cnt)
xsh.Screen.Send VbCr
End Sub
说明
- 等待字符串login
xsh.Screen.WaitForString("login")
- 执行python脚本
oShell1.Exec("C:\ProgramData\Anaconda3\python.exe D:\doc\script\doorgod.py")
- 获取脚本输出内容,给变量cnt
cnt = oShell.StdOut.ReadAll()
- 模拟输入cnt内容
xsh.Screen.Send(cnt)
- 模拟输入回车
xsh.Screen.Send VbCr