如果你经常需要重复操作浏览器,比如每天打开固定网页、输入账号密码、点击特定按钮,手动操作不仅枯燥还容易出错。VBScript(简称VBS)作为Windows系统内置的脚本语言,能帮你把这些重复劳动自动化。相比Python+Selenium等方案,VBS不需要安装额外环境,一个记事本就能写脚本,特别适合快速解决轻量级自动化需求。
我最早用VBS是为了自动登录公司内网系统。每天早上到工位第一件事就是开浏览器、输账号、等页面加载、再输密码,整个过程要重复3次。后来写了个20行的VBS脚本,双击运行就能自动完成所有步骤,还能顺便把浏览器全屏。这种"开箱即用"的体验,正是VBS在简单自动化场景下的独特优势。
用VBS控制浏览器的核心是WScript.Shell对象。下面这段代码可以启动Chrome并打开百度首页:
vbs复制Set wsh = CreateObject("Wscript.Shell")
wsh.Run "chrome.exe https://www.baidu.com"
如果浏览器没反应,大概率是路径问题。Windows默认不会把Chrome加入系统PATH,需要指定完整路径:
vbs复制wsh.Run """C:\Program Files\Google\Chrome\Application\chrome.exe"" https://www.baidu.com"
注意:VBS中连续三个引号是转义单个引号的特殊写法,确保路径中的空格被正确解析
等页面加载完成后,可以用SendKeys方法模拟键盘操作。比如自动填写登录表单:
vbs复制WScript.Sleep 5000 ' 等待5秒让页面加载
wsh.SendKeys "username" ' 输入用户名
WScript.Sleep 1000
wsh.SendKeys "{TAB}" ' 切换到密码框
wsh.SendKeys "password" ' 输入密码
wsh.SendKeys "{ENTER}" ' 模拟回车登录
这里有几个实用技巧:
WScript.Sleep的单位是毫秒,适当等待确保前一个操作完成{TAB}、{ENTER}是特殊键位代码(完整列表见后文)SendKeys "+"模拟Shift键切换有时候需要确保操作在正确的窗口进行,AppActivate方法能激活指定标题的窗口:
vbs复制wsh.AppActivate "百度一下,你就知道"
WScript.Sleep 1000
wsh.SendKeys "{F11}" ' 全屏显示
实测中我发现窗口标题可能有隐藏字符,保险起见可以只匹配部分标题:
vbs复制wsh.AppActivate "百度" ' 匹配包含"百度"的窗口
自动化测试时常需要干净的环境,这段代码能在打开页面前清除Chrome缓存:
vbs复制wsh.Run "chrome.exe --incognito about:blank" ' 先开无痕窗口
WScript.Sleep 3000
wsh.SendKeys "^+{Delete}" ' Ctrl+Shift+Del快捷键
WScript.Sleep 1000
' 后续用TAB键导航到"清除数据"按钮
For i = 1 To 5
wsh.SendKeys "{TAB}"
WScript.Sleep 300
Next
wsh.SendKeys "{ENTER}"
踩坑提醒:不同浏览器清除缓存的快捷键可能不同,Edge是
^+{Delete},Firefox则需要^+{F1}进入设置
| 操作 | 代码 | 示例 |
|---|---|---|
| 单键 | {键名} |
{F5}刷新页面 |
| 组合键 | ^Ctrl +Shift |
^c复制 +{F10}右键菜单 |
| 方向键 | {UP}/{DOWN}等 |
{LEFT 3}连按三次左键 |
| 文本输入 | 直接写字符 | "测试123" |
假设需要每天监控某电商商品价格,当低于设定值时自动下单:
vbs复制' 打开商品页面
Set wsh = CreateObject("Wscript.Shell")
wsh.Run "chrome.exe https://item.example.com/12345"
WScript.Sleep 10000 ' 等待10秒确保加载完成
' 获取价格(需配合页面特定DOM结构)
wsh.SendKeys "^a" ' 全选
wsh.SendKeys "^c" ' 复制
' 这里实际应该用剪贴板读取代码判断价格
' 伪代码:If price < 100 Then...
' 自动下单流程
wsh.SendKeys "{TAB 5}" ' 跳转到购买按钮
wsh.SendKeys "{ENTER}"
WScript.Sleep 3000
wsh.SendKeys "{TAB 8}" ' 跳转到提交订单
wsh.SendKeys "{ENTER}"
虽然这个例子比较理想化,但展示了VBS能实现的复杂交互逻辑。我在实际项目中用它自动填写过政府申报系统,那个系统有20多个表单字段,手动填写需要15分钟,用脚本只要2分钟还能避免填错。
wscript.exe打开"C:\Program Files (x86)\Internet Explorer\iexplore.exe"WScript.Sleep时长On Error Resume Next跳过非致命错误WScript.Echo输出执行状态有次我写的登录脚本在办公室能用,回家就失效。后来发现家里网络慢,页面加载需要更长时间。现在我会在关键操作前加检查点,比如用AppActivate确认窗口已打开再继续执行。
虽然现在主推Chrome,但有些老系统仍需兼容IE。这段代码能智能选择浏览器:
vbs复制url = "http://internal-system.example.com"
' 尝试用Chrome打开
On Error Resume Next
Set chrome = CreateObject("WScript.Shell")
chrome.Run "chrome.exe " & url
If Err.Number <> 0 Then
' Chrome失败时改用IE
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate url
ie.Visible = True
End If
对于需要登录的企业内部系统,建议将账号密码保存在变量中,而不是硬编码在脚本里:
vbs复制username = InputBox("请输入用户名")
password = InputBox("请输入密码", "", "*") ' 用*号隐藏输入
这样既保证安全性,又能让脚本给不同人员使用。我在团队内部分享脚本时,都会加上这种交互式设计。