#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. Лучше дождаться полной загрузки страницы. Из вашего последнего комментария я понимаю, что ваша цель — щелкнуть до того, как любой другой рабочий нажмет на него. Насколько я понимаю. Не должно быть заметной задержки, если вы дождетесь полной загрузки страницы, и автоматический щелчок будет быстрее, чем ручной щелчок другого сотрудника.