GetElementbyId в VBA IE Автоматизация - PullRequest
1 голос
/ 11 апреля 2020

У меня есть код, чтобы щелкнуть меню на веб-сайте. Код выглядит следующим образом: Sub SearchBot ()

Dim ie As Object
Dim HTMLDoc As MSHTML.HTMLDocument
Dim ckt_No As String
ckt_No = Range("A2").Value
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ShowWindow ie.hwnd, SW_MAXIMIZE
ie.Navigate "http://gamit.web.att.com/gamitx/welcome.htm"

Do While ie.Busy = True Or ie.ReadyState <> 4: DoEvents: Loop
Set HTMLDoc = ie.Document
HTMLDoc.getElementById("yui-gen1").Focus
HTMLDoc.getElementById("yui-gen1").Click



Do While ie.Busy = True Or ie.ReadyState <> 4: DoEvents: Loop
Stop 'Press SHIFT + F9 and examine the window...

и меню выглядят как Menu in web page

, а при просмотре меню я получил код HTML как как HTML Code

Во время выполнения кода VBA не выдавала никаких ошибок, но не щелкала по меню. после запуска кода меню выглядит следующим образом After code Run

К вашему сведению У меня есть Microsoft Inte rnet контроль, функции библиотеки объектов Microsoft HTML в моем редакторе VBA, я поражен этим Некоторое время было бы неплохо, если бы кто-нибудь мог помочь в этом.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Попробуйте перейти к тегу href дочернего элемента a (получение родительского элемента по его идентификатору)

ie.navigate2 HTMLDoc.querySelector("#yui-gen1 a").href
0 голосов
/ 11 апреля 2020

Может быть, но я не могу проверить это, потому что ваш URL не работает для меня HTMLDoc.getElementById("yui-gen1").nextPageElement.Click

...