Альтернатива Internet Explorer для автоматизации VBA

#html #vba #internet-explorer

Вопрос:

У меня есть код 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 в его нынешнем виде.

Есть ли способ повторно использовать то, что я написал до сих пор (повторное использование одних и тех же объектов и т. Д. ) ? По возможности без перехода на другой фреймворк/язык

Спасибо

Комментарии:

1. Является ли веб-сайт общедоступным?

2. Я думаю, что ответ 3LexW правильный. Согласно вашему описанию, SeleniumBasic-лучший выбор, вы можете использовать его с Chrome. Но вам придется изменить свой код. Вы также можете обратиться к репозиторию GitHub для примеров кода SeleniumBasic.

3. Сайт не является общедоступным. Я думал, что Microsoft могла бы, по крайней мере, сделать Edge пригодным для использования с моим кодом.

4. Нетрудно выучить SeleniumBasic, и вы все еще можете использовать VBA. Edge не поддерживает интерфейс автоматизации COM (объект InternetExplorer), используемый в VBA.

5. Я просто подумал, что не могу установить Selenium, моя компания запрещает установку чего-либо с github

Ответ №1:

Seleniumbasic это пакет веб-автоматизации для среды VBA, на который вы, возможно, захотите взглянуть.

Репо на Github Seleniumbasic

Комментарии:

1. Спасибо, вы имеете в виду, что я не могу повторно использовать объекты, подобные созданным для других браузеров?

2. Действия по поиску элемента для selenium довольно просты в освоении, а документация хорошо написана. К сожалению, вам может потребоваться некоторое время, чтобы изменить свой код, но обучение и миграция не являются сложными, поскольку они очень похожи.