Excel VBA — Щелкнуть по веб-элементу во время загрузки страницы?

#excel #vba #internet-explorer #automation

#excel #vba #internet-explorer #автоматизация

Вопрос:

Мне интересно, возможно ли щелкнуть по веб-элементу во время загрузки страницы, вот мой код, но он не работает:

 Sub Link()

       Dim IE                  As InternetExplorer
       Dim lMaterial           As String
       Dim lObra               As String
       Dim Shell As Object
       'Dim IE As Object


       'ABRE O IE EXPANDIDO
       Set IE = CreateObject("InternetExplorer.Application")
       IE.Visible = 1
       IE.Toolbar = 0
       IE.MenuBar = 0

       'ABRE O SIENGE
       IE.Navigate "https://curyempreendimentos.sienge.com.br/sienge/MED/listLiberacoesMedicoes.do"
       'IDENTIFICA SE O SIENGE FOI TOTALMENTE CARREGADO
       Do While IE.Busy = True
           DoEvents
       Loop
       'IDENTIFICA SE O SIENGE FOI TOTALMENTE CARREGADO
       While IE.READYSTATE <> READYSTATE_COMPLETE
       Wend
       sng = timer
           Do While sng   1 > timer
           Loop

       'INFORMA O Nº DO CONTRATO
       IE.Document.all("labelContrato").Value = ActiveCell
       Call IE.Document.parentWindow.execScript("javascript: CT_BLR(this);onChangeContrato(false)", "JavaScript")

       'CONSULTA MEDIÇÕES À SEREM LIBERADAS

       Do While IE.Busy = True

       Set elems = IE.Document.getElementsByTagName("input")
           For Each e In elems
               If (e.getAttribute("Value") = "Consultar") Then
                   e.Click
               Exit For
           End If
       Next e

       Loop

End Sub
  

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

1. вам нужно дождаться, пока он загрузится. Do: DoEvents: Loop Until IE.Busy <> "True" . Есть ли один из способов сделать это. Если вы выполните поиск в Google, вы найдете больше способов.

2. что означает «не работает»? И на что вы пытаетесь нажать и каким должен быть результат нажатия? И вы входите в систему?

3. «во время загрузки страницы» немного расплывчато — почему именно это, а не дождаться завершения загрузки страницы? Если вы не дождетесь его завершения, то невозможно предсказать, какой эффект могут оказать ваши клики: скрипты и т.д. Могут быть загружены не полностью, даже если элемент находится там, на котором нужно щелкнуть.

4. Тим, это ERP, который я использую в своей работе, поэтому я должен войти в систему. На самом деле мой код работает нормально, если я дождусь завершения загрузки страницы. После загрузки страницы мне нужно нажать на кнопку, которая освобождает «флаг», и я хочу, чтобы сначала на нее могли нажать мои коллеги. Я понимаю, что во время серфинга в Интернете я могу нажать на кнопку, даже если страница загружена не полностью. Итак, это то, что я хочу сделать.

5. Лучше дождаться полной загрузки страницы. Из вашего последнего комментария я понимаю, что ваша цель — щелкнуть до того, как любой другой рабочий нажмет на него. Насколько я понимаю. Не должно быть заметной задержки, если вы дождетесь полной загрузки страницы, и автоматический щелчок будет быстрее, чем ручной щелчок другого сотрудника.