Кнопка HTML не отображает ту же функциональность при нажатии с VBA, в отличие от нажатия вручную
Вручную:
- Откройте IE
- Открыть URL
- Нажмите кнопку HTML (Button1 для аргумента)
- Нажмите OK во всплывающем диалоговом окне. Дождитесь, пока клиент свяжется с сервером, и откроется лист Excel.
По VBA (мой код в настоящее время делает это):
- Открыть IE Открыть URL
- Нажмите кнопку HTML (Button1 для аргумента)
Все это прекрасно работает, и всплывающее диалоговое окно выглядит так же, как и при ручном нажатии кнопки 1. Однако в этот момент, когда я вручную нажимаю кнопку ОК в диалоговом окне, ничего не происходит!
Я не вижу, в чем разница, потому что последнее действие в обеих последовательностях одинаково (ручное нажатие на кнопку ОК в диалоге).
Кто-нибудь видел этот тип проблемы раньше?
Редактировать:
Спасибо за вашу помощь, ребята, я должен был упомянуть, что я пытаюсь взаимодействовать с HTML на сервере Sharepoint. Ниже мой код и источник HTML. Я знаю, что мой метод поиска кнопки, вероятно, не самый сильный или самый стандартный, но это было единственное, что я мог использовать в качестве параметра поиска в то время.
Мой VBA:
'------------------------------- Open IE & URL
Dim appIE As Object
Dim URL As String
URL = "http://OurSharePointServer/epr/default.aspx"
Set appIE = CreateObject("InternetExplorer.Application")
With appIE
.navigate URL
.Visible = True
End With
While appIE.Busy Or appIE.readyState <> 4: DoEvents: Wend
'---------------------------------------------
'------------------------------- Click "Raise New EPR" Button
For Each htma In appIE.document.getElementsByTagName("img")
' Debug.Print htma.onclick
If InStr(htma.onclick, "createNewDocumentWithProgID") > 0 Then
Dim appExcel As Object
Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.Add
htma.Click
Application.Wait (Now + TimeValue("0:00:10"))
Exit For
End If
Next
'---------------------------------------------
HTML-код кнопки:
<IMG
onclick="createNewDocumentWithProgID('http:\u002f\u002fOurSharepointServer\u002fepr\u002fsubmit\u002fForms\u002fepr_.xls',
'http:\u002f\u002fOurIntranet\u002fepr\u002fsubmit',
'SharePoint.OpenDocuments', false)"
src="../site%20images/epr_but.jpg"
<a href="http://OurSharepointServer/epr/Submit">
1 ответ
Поскольку вы больше ничего не указали, единственная подсказка - применить .focus()
метод этой кнопки HTML (Button1 ради аргумента) перед .click()
и также применяя .blur()
может помочь метод для других элементов на странице, с которой вы взаимодействуете. Обычно это может быть обработчик, назначенный одному из этих событий, что в итоге приводит к такой разнице в поведении.