VBA 自动化的 Internet Explorer 替代方案
Posted
技术标签:
【中文标题】VBA 自动化的 Internet Explorer 替代方案【英文标题】:Internet Explorer alternative for VBA automation 【发布时间】:2021-07-15 10:02:53 【问题描述】:我有一个 VBA 代码来浏览网页、阅读内容、单击按钮、填写文本等...此代码使用 Internet Explorer。下面我没有复制代码,只是把我使用的主要对象给你一个想法:
Dim htmlDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate Url
ie.Visible = True
...
Set oBrowser = ie
oBrowser.Visible = True
...
Set HTMLDoc = oBrowser.document
Set nodeAllDiv = HTMLDoc.getElementsByTagName("p")
Txt = nodeAllDiv.Item(0).innerText
..
HTMLDoc.getElementsByTagName("p").Item(nodeAllDiv.Length - 1).Click
Set listButtons = HTMLDoc.getElementsByTagName("button")
listButtons.Item(0).Click
Set formDivs = HTMLDoc.getElementsByTagName("form")
问题是最近我正在浏览的网页不再受 Internet Explorer 支持,而是使用 Chrome 或 Edge,因此我无法按原样使用此 VBA 代码。
有没有一种方法可以重用我到目前为止所写的内容(重用相同的对象等......)?如果可能,无需迁移到其他框架/语言
谢谢
【问题讨论】:
网站是公开的吗? 我认为 3LexW 的回答是正确的。根据您的描述,SeleniumBasic 是最好的选择,您可以将它与 Chrome 一起使用。但是你必须改变你的代码。 SeleniumBasic 的代码示例也可以参考GitHub repo。 该网站不公开。我认为微软至少可以让 Edge 用于我的代码。 SeleniumBasic 学习起来并不难,你仍然可以使用 VBA。 Edge 不支持 VBA 中使用的 COM 自动化接口(InternetExplorer 对象)。 我只是想我无法安装 Selenium,我的公司确实禁止从 github 安装任何东西 【参考方案1】:Seleniumbasic
是一个用于 VBA 环境的 Web 自动化包,您可能想看看。
Github repo of Seleniumbasic
【讨论】:
谢谢,你的意思是我不能像为其他浏览器创建的那样重用对象吗? 对于 selenium,定位元素的操作非常容易学习,并且文档编写得很好。不幸的是,您可能需要一些时间来修改您的代码,但学习和迁移在 IMO 中并不难,因为它们非常相似。以上是关于VBA 自动化的 Internet Explorer 替代方案的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VBA(没有 Internet Explorer)下载文件
VBA仅使用Onlick单击Internet Explorer [关闭]