You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium WebDriver结合PowerShell实现Edge后台自动化

前置环境准备(适配PowerShell零基础)
  • 安装匹配版本的Edge WebDriver:先打开Edge,进「设置-关于Microsoft Edge」记下当前浏览器大版本号,下载对应大版本的Microsoft Edge WebDriver,解压后把msedgedriver.exe直接丢C:\Windows\System32目录就行,不用额外配环境变量,省得后续启动报找不到文件的错。
  • 安装PowerShell Selenium模块:右键点开始菜单选「Windows PowerShell(管理员)」,执行Install-Module -Name Selenium -Scope CurrentUser,所有弹出的确认提示全输Y回车,装完执行Get-Module Selenium -ListAvailable能看到版本信息就是装成了。
  • 无头模式核心启动参数提前记牢:要实现后台静默运行不弹Edge窗口,启动Driver时必须加这几个参数:--headless=new(新版无头模式核心参数)、--disable-gpu、--no-sandbox、--disable-dev-shm-usage,少了容易在后台运行时报兼容错误。
  • 脚本执行权限提前配置:还是在PowerShell里执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,输Y确认,不然本地写的ps1脚本默认跑不起来。
实操1:无窗口静默运行Edge自动化基础脚本

直接复制以下代码保存为.ps1文件就能运行,全程不会弹出Edge实体窗口:

Import-Module Selenium

# 加载Edge启动配置
$edgeOptions = New-Object OpenQA.Selenium.Edge.EdgeOptions
$edgeOptions.AddArgument("--headless=new")
$edgeOptions.AddArgument("--disable-gpu")
$edgeOptions.AddArgument("--no-sandbox")
$edgeOptions.AddArgument("--disable-dev-shm-usage")

$driver = $null
try {
    # 启动后台Edge实例
    $driver = New-Object OpenQA.Selenium.Edge.EdgeDriver($edgeOptions)
    # 测试访问页面
    $driver.Url = "https://www.baidu.com"
    Write-Host "静默运行成功,当前页面标题:$($driver.Title)"
}
finally {
    # 无论脚本是否报错,都退出驱动释放资源
    if ($driver) { $driver.Quit() }
}

注意:不要漏写驱动退出逻辑,否则后台会残留msedgedriver进程占用内存,用try/finally包裹是最稳妥的写法

实操2:静默添加Edge IE模式站点

推荐直接写系统策略的方案,全程无任何窗口弹出,100%静默生效,不会因为Edge版本更新改了界面就失效,比模拟操作浏览器设置页稳定得多

# 按需修改这里的站点列表,支持域名、通配符、IP
$ieModeSites = @(
    "*.internal.company.com",
    "oa.old-system.cn",
    "192.168.3.25"
)

# 配置路径(如果要给当前用户配置不需要管理员权限,把路径开头的HKLM改成HKCU即可)
$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Edge"
$siteListFile = "$env:ProgramData\edge_ie_sitelist.xml"

# 生成IE模式站点标准配置文件
$xml = @"
<site-list version="1">
$(foreach ($site in $ieModeSites) {
"  <site url=`"$site`">
    <compat-mode>IE11</compat-mode>
    <open-in>IE11</open-in>
  </site>"
})
</site-list>
"@
Set-Content -Path $siteListFile -Value $xml -Encoding UTF8

# 写入注册表开启IE模式、指定站点列表路径
if (-not (Test-Path $regPath)) { New-Item -Path $regPath -Force | Out-Null }
Set-ItemProperty -Path $regPath -Name "InternetExplorerIntegrationLevel" -Value 1 -Type DWord -Force
Set-ItemProperty -Path $regPath -Name "InternetExplorerIntegrationSiteList" -Value $siteListFile -Type String -Force

Write-Host "IE模式站点配置完成,重启Edge后自动生效"

如果写HKLM路径需要用管理员权限运行脚本,配置完成后不需要启动Edge,所有列表内的站点下次访问时会自动用IE模式加载。

Selenium PowerShell常用操作清单(直接可复用)
  • 页面导航类
    • $driver.Url = "目标网址":跳转到指定页面
    • $driver.Navigate().Back():页面后退
    • $driver.Navigate().Forward():页面前进
    • $driver.Navigate().Refresh():刷新当前页面
  • 元素定位类
    • $driver.FindElementById("元素id属性"):按id匹配元素
    • $driver.FindElementByClassName("元素class属性"):按class匹配元素
    • $driver.FindElementByName("元素name属性"):按name属性匹配元素
    • $driver.FindElementByXPath("XPath表达式"):按XPath匹配,万能定位方式
    • $driver.FindElementByCssSelector("CSS选择器"):按CSS选择器匹配元素
  • 元素操作类
    • $element.Click():点击定位到的元素
    • $element.SendKeys("要输入的内容"):向输入框填入内容
    • $element.Clear():清空输入框已有内容
    • $element.Text:获取元素的可见文本
    • $element.GetAttribute("属性名"):获取元素指定属性的值,比如href、value等
  • 等待类(避免页面没加载完就操作报错)
    • 固定等待:Start-Sleep -Seconds 2,强制等2秒,写法简单但效率低
    • 智能等待:最多等10秒直到目标元素出现,效率更高,示例:
      $wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($driver, [TimeSpan]::FromSeconds(10))
      $target = $wait.Until([OpenQA.Selenium.Support.UI.ExpectedConditions]::ElementExists([OpenQA.Selenium.By]::Id("元素id")))
      
  • 特殊场景类
    • $driver.SwitchTo().Alert().Accept():点击弹窗的确定按钮
    • $driver.SwitchTo().Alert().Dismiss():点击弹窗的取消按钮
    • $driver.SwitchTo().Frame($frameElement):切换到iframe内,操作iframe里的元素必须先执行切换
    • $driver.ExecuteScript("JS代码"):注入执行原生JavaScript,处理特殊交互场景
新手常见踩坑提示
  • WebDriver版本必须和Edge大版本完全一致,Edge自动更新后如果脚本突然启动报错,90%的情况是WebDriver版本不匹配,重新下载对应版本替换即可。
  • 无头模式不要用旧版--headless参数,新版Edge必须用--headless=new,否则会出现元素定位失败、功能异常的问题。
  • 找不到元素时先排查两个点:一是元素是否在iframe内,需要先切换frame;二是页面元素是否还没加载完成,加智能等待即可。

内容的提问来源于stack exchange,提问作者Wasi Mahmood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:15:58