请求修改VBA WebDriver代码以启动IE模式下的Edge浏览器
修改VBA代码实现Edge浏览器IE模式启动
要让Edge以IE模式启动,需通过配置EdgeDriver的选项启用IE兼容模式,以下是修改后的完整代码:
Sub Resolve() Dim obj As New WebDriver Dim edgeOptions As New EdgeOptions ' 配置Edge以IE模式启动 edgeOptions.AddArgument "--ie-mode" ' 可选:指定IE兼容文档模式(如IE11,按需调整) edgeOptions.AddArgument "--ie-doc=11" ' 使用配置好的选项启动Edge obj.Start "Edge", "", edgeOptions obj.Get "www.website-for-example.com" ' 修正原代码URL拼写错误 ' 登录流程 obj.FindElementById("s_swepi_1").SendKeys (ThisWorkbook.Sheets("Actions").Range("J1").Value) obj.FindElementById("s_swepi_2").SendKeys (ThisWorkbook.Sheets("Actions").Range("J2").Value) obj.FindElementByLinkText("Login").Click Application.Wait (Now + TimeValue("0:00:10")) ' 循环处理数据 Dim i As Integer For i = 1 To 1000 ' 可根据实际行数调整循环上限 If ThisWorkbook.Sheets("Actions").Range("A" & i).Value = "" Then MsgBox "Finish" Exit For End If obj.FindElementById("s_1_1_4_0_Ctrl").Click obj.FindElementById("1_s_1_l_SR_Id").Click obj.FindElementById("1_SR_Id").SendKeys (ThisWorkbook.Sheets("Actions").Range("A" & i).Value) obj.FindElementById("s_1_1_0_0_Ctrl").Click obj.FindElementByName("s_2_1_40_0").ClickDouble obj.FindElementByName("s_2_1_40_0").SendKeys (ThisWorkbook.Sheets("Actions").Range("D" & i).Value) obj.FindElementByName("s_2_1_53_0").ClickDouble obj.FindElementByName("s_2_1_53_0").SendKeys (ThisWorkbook.Sheets("Actions").Range("B" & i).Value) obj.FindElementById("1_s_1_l_Type").ClickDouble obj.FindElementByName("s_3_1_43_0").SendKeys (ThisWorkbook.Sheets("Actions").Range("C" & i).Value) obj.FindElementById("1_s_1_l_Type").ClickDouble Next i ' 清理资源 obj.Quit Set obj = Nothing Set edgeOptions = Nothing End Sub
关键修改说明:
- 新增
EdgeOptions对象,通过AddArgument传入--ie-mode参数强制启用IE模式 - 可选添加
--ie-doc=11参数指定IE文档版本,适配不同网站兼容性需求 - 修正原代码中URL的拼写错误(
wwww改为www) - 补充变量
i的声明,符合VBA语法规范 - 增加对象清理代码,避免内存泄漏
额外注意:
- 需确保EdgeDriver版本与本地Edge浏览器版本完全匹配
- Edge浏览器需提前在设置中开启"允许在IE模式下重新加载网站"功能
- 若网站仍无法正常加载,可尝试调整
--ie-doc后的版本号(如IE10、IE9等)
内容的提问来源于stack exchange,提问作者Tameem Sayed
相关产品推荐
相关产品推荐

