标题: [其他] 批处理如何自动打开网页并输入用户名和密码登录系统 [打印本页]
作者: oceanmeng 时间: 2009-5-8 00:04 标题: 批处理如何自动打开网页并输入用户名和密码登录系统
本帖最后由 pcl_test 于 2016-7-14 14:02 编辑
我有一个系统部署在多台机器上,可以通过任一台机器访问该系统,为了验证部署在各台机器的应用是否可以正常登陆,我不得不逐台打开一个网页输入如下url,然后输入用户名和密码进行登陆验证,由于机器数量较多,非常麻烦,我想能否实现将所有url地址、登陆用户、登陆密码写到一个配置文件中,然后编一个VBS程序读取配置文件中url地址,逐台自动开启IE页面,然后自动在开启的页面的用户、密码输入框中输入用户及密码,并自动点击登陆按钮进入系统,请各位大哥大姐帮忙看看如何实现?
http;//A机器IP地址/login.asp
http;//B机器IP地址/login.asp
http;//C机器IP地址/login.asp
http;//D机器IP地址/login.asp
。。。。。。
作者: everest79 时间: 2009-5-8 17:44
你得提供你网页登陆部分的的源文件,
作者: everest79 时间: 2009-5-8 20:54
这是按我一个工具修改的- const config_ = "config.ini" '配置文件名称
- const ForReading = 1
- const ForWriting = 2
-
- Dim fso,Ieo,Control_Mark
- Set fso = CreateObject("Scripting.FileSystemObject")
-
- 'WScript.Echo ReadConfig
- RegExpConfig()
-
- Function ReadConfig()
- If (fso.FileExists(config_)) Then
- Set Readobj=fso.OpenTextFile(config_,ForReading)
- ReadConfig = Readobj.ReadAll
- Set readobj=Nothing
- Else
- WScript.Timeout = 10
- WScript.Echo "为了正常启动在当前目录下需要配置文件(" & config_ & ")"
- WScript.Quit
- End If
- End Function
-
- Function RegExpConfig() 'ReadTextStream
- Set RegTmp1 = New RegExp
- RegTmp1.Global = True
- RegTmp1.IgnoreCase = True
- RegTmp1.Pattern = "P(\d{3})=(\S+)\s(\S+)\s(\S+)"
- Set RegSet = RegTmp1.Execute(ReadConfig())
- For Each Match In RegSet
- Webbrowser Match.SubMatches(0),Match.SubMatches(1),Match.SubMatches(2),Match.SubMatches(3)
- 'WScript.Echo match.value
- 'Wscript.Echo Match.SubMatches(0) & Match.SubMatches(1) & Match.SubMatches(2)
- '根据子集数目列出数组 子集括号数-1
- 'For Each substr in match.submatches
- ' WScript.Echo substr
- 'Next
- '枚举
- Next
- End Function
-
- Function Webbrowser(Listnum_,Address_,UserName_,PassWord_)
- 'WScript.Echo "Address:" & Address_ & " UserName:" & UserName_ & " Password:" &PassWord_
- Control_Mark = True
- Set Ieo = WScript.CreateObject("InternetExplorer.Application","Event_")
- Ieo.Navigate (Address_)
- While (Ieo.Busy)
- WScript.Sleep 200
- Wend
- Ieo.Visible=1
- Ieo.Document.All.wd.Value=" UserName:" & UserName_ & " Password:" &PassWord_
- Ieo.Document.All.sb.click
- While Control_Mark
- WScript.Sleep 200
- Wend
- 'WScript.Echo Listnum_ & "已完成操作"
- End Function
-
-
-
- Sub Event_OnQuit()
- Set Ieo = Nothing
- Control_Mark = False
- 'WScript.Echo 当前IE实例已释放"
- End Sub
-
-
-
- '''''''''''''''''''''''''config_示例'''''''
- '[Server]
- 'P001=www.baidu.com admin1 123456a
- 'P002=www.baidu.com admin2 123456b
- 'P003=www.baidu.com admin3 123456c
- ''''''''''''''''''''''''''''''''''''''''''
复制代码
作者: oceanmeng 时间: 2009-5-9 21:50
我发现程序不停执行如下内容,这是为什么 ?
While Control_Mark
WScript.Sleep 200
Wend
Sub Event_OnQuit() 好像没起作用
作者: everest79 时间: 2009-5-10 00:53
Event_OnQuit()是wscript接收来自ie的事件,也就是关闭窗口,在没有关团之前,就一直while wend那部份循环等待了
脚本会按顺序访问config.ini内的网站,当前网页关闭后,才会去访问下一个
作者: oceanmeng 时间: 2009-5-11 17:52
如何页面在frameset框架中,就无法获取,这该怎么办,因为框架中的页面不让直接输入,以输入它就自动跳到框架中,这该如何是好?
作者: everest79 时间: 2009-5-11 22:30
我只能提供大概的框架给你
至于如何自动填写你的网页,我又不是上帝
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |