2016-07-06 2 views
3

Я пытаюсь написать макрос для доступа к данным с веб-портала, где мне нужно запустить веб-сайт и нажать кнопку «открыть в excel».VBA Web Automation

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

BrowswerObject.Document.ElementID.Click 

, но я не уверен, что правильный элемент и кодирование будет. Один веб-страницы, когда я проверить элемент у него есть этот код:

<A onclick=ur_Button_click(event); tabIndex=0 id=BUTTON_TOOLBAR_STANDARD_btn7_acButton title="Open in Excel" class=urBtnStd onkeydown=ur_Button_keypress(event); style="OVERFLOW: visible; TEXT-ALIGN: center" href="javascript:void(0);" ct="B" ti="0" st="" ocl="sapbi_page.sendCommandArray([['GUID','11',0],['NOUILOCK','X',0],['BI_COMMAND_TYPE','ABSTRACT',0]],event);">Open in Excel</A> 

Может кто-нибудь точно определить, что от этого я должен сосредоточиться на для этого?

Edit: Я пытался getElementByID, но я бегу в эту ошибку: метод «Документ» объекта «IWebBrowser2» не удалось

на выборочную код:

Dim ie As Object 
    Set ie = CreateObject("Internetexplorer.Application") 
    ie.Visible = True 
    ie.Navigate *Link* 

    ie.document.getElementById("BUTTON_TOOLBAR_STANDARD_btn7_acButton ").Click 
+0

Вы можете получить getElementbyID. Browser.Document.getElementbyID («BUTTON_TOOLBAR_STANDARD_btn7_acButton»). Нажмите –

+0

спасибо, я пробовал это, но я столкнулся с ошибкой, когда метод документа не распознается. Я обновил, чтобы включить мой пример кода, знаете ли вы, как это решить? –

+0

** (1) ** добавьте ссылку «Microsoft Internet Controls» на [это] (https://msdn.microsoft.com/en-us/library/ms970672.aspx) и 'Dim ie, как SHDocVw.InternetExplorer: set ie = new SHDocVw.InternetExplorer', а не использовать общий «объект». ** (2) ** Используйте событие «NavigateError», чтобы проверить, действительно ли выполняется «Навигация». ** (3) ** В редакторе VB установите точку останова на строке 'getElementById' и используйте окно« Смотреть », чтобы увидеть, действительно ли' ie.Document' является действительным объектом при попытке вызвать 'getElementById'. – cxw

ответ

0

Вы правы, это должно быть что-то вроде этого. , ,

For Each oHTML_Element In HTMLDoc.getElementsByTagName("input") 
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For 
Next 

Подробнее на http://vbadud.blogspot.com/2009/08/how-to-login-to-website-using-vba.html#gurMeXG3KmWvFUMx.99

Лучший способ увидеть имя ID кнопки является хитом F12, когда вы находитесь на сайте. Если вы используете Firefox и F12 ничего не делает, загрузите Firebug.

https://addons.mozilla.org/en-US/firefox/addon/firebug/

Если вы используете IE и ничего не происходит, когда вы нажмете F12, скачать и установить IE Developer Tool.

https://msdn.microsoft.com/en-us/library/bg182326(v=vs.85).aspx

Эти инструменты позволят вам легко увидеть код позади страницы и все очень интерактивным тоже, так что эти вещи очень проста в использовании.

Удачи!

Смежные вопросы