编写BAT脚本实现Chrome打开指定网页、代理登录及下拉框选择
兄弟,BAT本身是命令行脚本,没法直接操控浏览器的GUI交互(比如输代理密码、选下拉菜单这些),得搭配自动化工具才行。给你两个实用的方案,你可以根据自己的情况选:
方案一:AutoHotkey + BAT(简单易上手)
AutoHotkey是专门做GUI自动化的工具,能模拟键盘鼠标操作,刚好能解决你的需求。
步骤1:编写AutoHotkey脚本(命名为AutoFill.ahk)
这个脚本会帮你自动处理代理认证和下拉菜单选择,记得把里面的占位符替换成你的实际信息:
; 等待Chrome窗口启动并激活 WinWait, Google Chrome WinActivate, Google Chrome ; 等待代理认证弹窗(注意:不同语言系统弹窗标题不一样,英文是"Authentication Required",中文是"代理认证",要对应改) WinWait, 代理认证 WinActivate, 代理认证 ; 输入代理用户名,按TAB切换到密码框 Send, 你的代理用户名{TAB} ; 输入密码并回车确认 Send, 你的代理密码{Enter} ; 等待网页加载完成(时间可以根据网页速度调整,单位是毫秒) Sleep, 3000 ; 定位下拉菜单:这里假设按5次TAB能聚焦到下拉框,你可以自己数一下实际需要按几次 Send, {TAB 5} ; 按向下箭头选择目标选项(选第2个就按1次,第3个按2次,以此类推) Send, {Down}{Enter}
步骤2:编写BAT脚本调用AHK
把下面的代码保存为LaunchChrome.bat,记得替换网页地址和AHK脚本的路径:
@echo off ; 启动Chrome并打开目标网页 start chrome.exe "https://你的目标网页地址.com" ; 调用AutoHotkey脚本(如果AHK脚本和BAT在同一文件夹,直接写文件名就行) start "" "AutoFill.ahk"
注意事项
- 要先安装AutoHotkey(免费工具,官网下载即可)
- 代理弹窗的标题一定要和你的系统语言匹配,不然脚本找不到窗口
- 下拉菜单的TAB次数要自己实际测试调整,或者用更精准的元素定位(比如通过Chrome开发者工具找元素的ClassNN,用
ControlFocus直接聚焦)
方案二:PowerShell + Selenium(更稳定可靠)
如果想要更精准的浏览器控制,推荐用PowerShell搭配Selenium,它能直接操作网页DOM元素,不用依赖模拟键盘,稳定性更高。
步骤1:准备环境
- 打开PowerShell,执行下面的命令安装Selenium模块:
Install-Module -Name Selenium -Force
- 下载和你Chrome版本对应的
ChromeDriver,放到系统PATH里,或者和脚本放在同一文件夹。
步骤2:编写PowerShell脚本(命名为AutoBrowser.ps1)
替换里面的代理信息、网页地址和下拉菜单的定位参数:
# 导入Selenium模块 Import-Module Selenium # 配置Chrome选项(如果需要手动设置代理的话,把下面注释去掉) # $proxy = New-Object OpenQA.Selenium.Proxy # $proxy.HttpProxy = "http://你的代理地址:端口" # $proxy.SslProxy = "http://你的代理地址:端口" # $chromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions # $chromeOptions.Proxy = $proxy # 启动Chrome浏览器 $driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver # 打开目标网页 $driver.Navigate().GoToUrl("https://你的目标网页地址.com") # 处理代理认证:如果是网页内的弹窗,可以用下面的代码(系统级弹窗得配合AutoHotkey) # $wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($driver, [System.TimeSpan]::FromSeconds(10)) # $alert = $wait.Until([OpenQA.Selenium.Support.UI.ExpectedConditions]::AlertIsPresent()) # $alert.SendKeys("你的代理用户名{Tab}你的代理密码") # $alert.Accept() # 等待下拉菜单加载完成(最多等10秒) $wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($driver, [System.TimeSpan]::FromSeconds(10)) $selectElement = $wait.Until([OpenQA.Selenium.Support.UI.ExpectedConditions]::ElementIsVisible([OpenQA.Selenium.By]::Id("下拉菜单的ID"))) # 选择目标选项:可以通过文本或值选择 $select = New-Object OpenQA.Selenium.Support.UI.SelectElement($selectElement) # 比如通过选项文本选择 $select.SelectByText("你要选的选项文本") # 或者通过选项的value属性选择 # $select.SelectByValue("选项的value值")
步骤3:编写BAT脚本调用PowerShell
保存为LaunchChrome.bat:
@echo off ; 绕过PowerShell执行限制,运行脚本 powershell -ExecutionPolicy Bypass -File "AutoBrowser.ps1"
注意事项
- ChromeDriver版本必须和你的Chrome版本完全匹配,不然会报错
- 如果是系统级的代理认证弹窗,Selenium没法直接处理,这时候可以结合方案一的AHK脚本处理弹窗
- 下拉菜单的定位方式可以灵活调整:比如用
FindElementByName、FindElementByXPath,根据你网页源码里的元素属性来选
内容的提问来源于stack exchange,提问作者Eat-man
相关产品推荐
相关产品推荐

