自动化运行Microsoft Edge时如何屏蔽「Save your information」弹窗
解决方案
方案1:添加针对性的Edge启动参数+用户偏好配置
你之前添加的参数都是针对通知、扩展类的,没有命中自动填充弹窗的控制逻辑,替换为以下配置即可:
EdgeOptions edgeOptions = new EdgeOptions(); // 禁用所有自动填充相关功能 edgeOptions.AddArgument("--disable-autofill"); // 禁用地址、银行卡、自定义信息保存提示 edgeOptions.AddArgument("--disable-features=AutofillSaveAddressProfilePrompt,AutofillSaveCreditCardPrompt,AutofillSaveCustomInfoPrompt"); // 禁用密码保存气泡 edgeOptions.AddArgument("--disable-save-password-bubble"); // 新增用户偏好配置,直接关闭自动填充开关 edgeOptions.AddUserProfilePreference("autofill.profile_enabled", false); edgeOptions.AddUserProfilePreference("autofill.credit_card_enabled", false); edgeOptions.AddUserProfilePreference("autofill.address_enabled", false); edgeOptions.AddUserProfilePreference("autofill.custom_info_enabled", false); // 原有需要保留的参数可以继续加在后面 edgeOptions.AddArgument("--disable-notifications"); edgeOptions.AddArgument("--disable-extensions");
方案2:指定本地临时用户数据目录
因为你使用的是共享盘的Edge无法修改全局设置,可以启动时指定一个本地可写入的临时文件夹作为用户数据目录,该配置不会影响共享盘的原始设置:
// 替换为你本地任意可读写的空文件夹路径即可 edgeOptions.AddArgument(@"--user-data-dir=C:\Temp\EdgeAutoTempProfile");
首次用这个目录启动后,手动关闭一次「Save and fill custom info」选项,后续自动化启动复用该目录就不会再弹出提示。
方案3:强制隐藏弹窗(应急方案)
如果上述配置都不生效,可以在表单填充完成后执行一段JS脚本直接移除弹窗,就不会遮挡你要点击的下层元素:
// 示例为Selenium C#的写法,其他自动化框架同理执行对应JS即可 IJavaScriptExecutor js = (IJavaScriptExecutor)driver; // 匹配自动填充弹窗元素移除,可根据实际弹窗的选择器调整 js.ExecuteScript("document.querySelector('[aria-label*=\"Save your information\"]')?.remove();"); // 如果弹窗是iframe包裹的,用下面的代码 js.ExecuteScript("document.querySelectorAll('iframe').forEach(f=>{if(f.src.includes('autofill')) f.remove();})");
内容的提问来源于stack exchange,提问作者NewGuy
相关产品推荐
相关产品推荐

