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

基于Excel VBA、Selenium与Chromedriver实现AARP关联UHC网站自动登录问题求解

问题根因定位

目标网站的登录模块基于AngularJS双向绑定机制开发,你遇到的提交无响应、页面卡死的核心原因是:通过Selenium的SendKeys直接写入输入框内容时,没有触发Angular框架监听的原生事件,框架层面根本没有感知到输入内容的变化。
结合你提供的输入框源码可以验证这个判断:

  • 输入框的样式类始终停留在ng-pristine(未修改)、ng-untouched(未交互)、ng-empty(空值)的初始状态
  • ng-model绑定的sm.userInput变量值从未被更新,始终为空
  • 提交时前端校验逻辑判定输入不合法,直接拦截提交请求,既不向后端发送验证请求、也不触发报错提示,最终表现为加载动画一闪而过、页面进入不可交互状态
修正后可被页面正确识别的实现代码

原有打开页面、点击首页Sign In按钮的逻辑无需修改,直接替换账密填写、提交阶段的代码即可:

' 精准等待登录表单核心元素加载完成,替换原来固定时长的盲目等待
WDriver.WaitForElement "EMAIL", 10000
WDriver.WaitForElement "PASSWORD", 10000
WDriver.WaitForElement "submitBtn", 10000

' 处理邮箱输入框
Dim emailInput As Selenium.WebElement
Set emailInput = WDriver.FindElementById("EMAIL")
emailInput.Click ' 聚焦输入框
emailInput.Clear ' 清空输入框残留的默认值
emailInput.SendKeys "abcd"
*关键操作*:派发冒泡的输入、失焦事件,同步Angular的双向绑定值
WDriver.ExecuteScript "arguments[0].dispatchEvent(new Event('input', {bubbles: true}));", emailInput
WDriver.ExecuteScript "arguments[0].dispatchEvent(new Event('blur', {bubbles: true}));", emailInput
Application.Wait Now + TimeValue("0:00:01")

' 处理密码输入框
Dim pwdInput As Selenium.WebElement
Set pwdInput = WDriver.FindElementById("PASSWORD")
pwdInput.Click
pwdInput.Clear
pwdInput.SendKeys "1234"
' 同步触发Angular识别的事件
WDriver.ExecuteScript "arguments[0].dispatchEvent(new Event('input', {bubbles: true}));", pwdInput
WDriver.ExecuteScript "arguments[0].dispatchEvent(new Event('blur', {bubbles: true}));", pwdInput
Application.Wait Now + TimeValue("0:00:01")

' 点击提交按钮
WDriver.FindElementById("submitBtn").Click
关键调整说明
  • 移除原有代码中两次空SendKeys的冗余聚焦操作,改用元素Click实现聚焦,避免重复写入干扰输入状态
  • 每次输入完成后手动派发input、blur事件:input事件会通知Angular更新双向绑定的变量值,blur事件会触发源码中定义的ng-blur绑定的isValidUserNameEmail()校验逻辑
  • 替换原来固定时长的等待逻辑,改用WaitForElement做精准的元素等待,避免页面未加载完成就执行后续操作
  • 调整后的代码提交时,会正常将填写的账密传递给后端:如果填写的是错误账密,就会弹出预期的"用户名密码组合与记录不匹配"报错,完全符合代码有效性的判定标准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 05:36:04