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

在Playwright中实现Windows身份认证自动化测试遇问题求助

解决Windows身份认证弹窗的自动化测试问题

你的代码失效的核心原因是:Windows身份认证弹窗是系统原生对话框,不属于浏览器页面范畴,而Playwright的page.keyboard只能控制浏览器页面内的输入操作,无法作用于系统级弹窗,所以你的键盘输入代码根本没被弹窗接收到。

下面给你几个可行的解决方案:

方案1:URL嵌入凭证(最简单,优先尝试)

很多支持Windows身份认证的服务允许在URL里直接携带用户名和密码,这样可以直接跳过弹窗,无需处理系统对话框。格式如下:

# 替换成你的目标地址、用户名和密码
self.page.goto("https://UserName:Password@your-target-domain.com")

注意:部分现代浏览器(比如Chrome)默认禁用这种URL凭证嵌入方式,你需要给浏览器添加启动参数解除限制:

# Playwright启动Chrome时添加参数
browser = playwright.chromium.launch(
    args=["--disable-features=BlockCredentialedSubresources"]
)

方案2:用系统级自动化工具模拟输入

如果无法使用URL嵌入凭证,就需要借助能控制全局输入的工具,比如Python的pyautogui库,它可以直接模拟系统键盘操作,能作用于Windows弹窗:

  1. 先安装依赖:
pip install pyautogui
  1. 修改测试代码:
import pyautogui

login_page.click_iwa()
pyautogui.sleep(2)  # 等待弹窗加载完成,可根据实际情况调整时间
pyautogui.typewrite('UserName')  # 输入用户名
pyautogui.press('tab')  # 切换到密码输入框
pyautogui.typewrite('Password')  # 输入密码
pyautogui.press('enter')  # 提交认证

提示:运行时要确保身份认证弹窗处于前台,不能被其他窗口遮挡,否则输入会失效;如果弹窗加载慢,适当延长等待时间。

内容的提问来源于stack exchange,提问作者Tal Angel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:52:07