Excel VBA使用Selenium操作Chromedriver时如何触发Enter键完成搜索
VBA Selenium Chromedriver触发Enter键搜索失效解决方案
你当前触发回车失效的核心原因是VBA环境下Selenium Basic的按键常量调用方式有误,以下是3种可直接运行的解决方案:
方案1:使用ASCII回车字符(兼容性最高,无需引用枚举)
直接发送回车对应的ASCII码Chr(13),不需要依赖Selenium的按键枚举,适配所有版本的Selenium Basic:
WDriver.FindElementById("searchField").SendKeys Chr(13)
方案2:正确调用Selenium内置按键常量
你之前的Keys.Enter写法遗漏了Selenium命名空间,VBA无法识别该常量,修正后写法:
WDriver.FindElementById("searchField").SendKeys Selenium.Keys.Enter
如果调用时提示未定义,需要在VBA编辑器的「工具-引用」中勾选Selenium Type Library即可。
方案3:直接点击搜索按钮(稳定性更高)
无需模拟回车,直接定位页面搜索按钮触发搜索,避免按键事件被页面拦截的问题,可根据页面实际元素属性调整定位方式:
WDriver.FindElementByCss("button[aria-label='搜索地址']").Click
修正后的完整参考代码
Dim WDriver As New WebDriver Sub Q_Streets_TxtBox() ' 打开Chrome并跳转至评估员电子地图网页 WDriver.Start "chrome", "" WDriver.Get "https://maps.boco.solutions/propertysearch/" WDriver.Window.Maximize ' 等待页面加载完成,单位为毫秒 WDriver.Wait 7000 Dim acct_addr As String acct_addr = "1327 AGAPE WAY" ' 操作搜索框 With WDriver.FindElementById("searchField") .Clear .SendKeys acct_addr ' 此处用方案1触发回车,可替换为其他方案 .SendKeys Chr(13) End With ' 后续操作 End Sub
内容的提问来源于stack exchange,提问作者ron
相关产品推荐
相关产品推荐

