Как нажать кнопку javascript на IE 11 с помощью VBA? - PullRequest
0 голосов
/ 04 марта 2020

Код VBA не несет ответственности, потому что он не работает на IE 11, даже не программно.

Кнопка работает с Chrome или Firefox, но мне не удается использовать Selenium на моем компьютер выдает ошибки.

Я попросил команду разработчиков сайта рассказать мне более точно, как эта кнопка была создана по этой ссылке (Exportar todo) по этой ссылке https://bananadesk.com/transactions/incoming

Снимок экрана веб-сайта:
Screen capture of the website

<a class="button -tertiary" href="javascript:export_all_to_excel()">Exportar Todo</a>

Если я осматриваю страницу html, я вижу такие вещи:

o=null,i=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var s=navigator.userAgent,c=s.match(a);c&&s.indexOf("Chrome")===-1&&s.indexOf("Chromium")===-1&&(o="Safari",i=c[1])}n.exports={agent:o,version:i,match:r}},{}],21:[function(t,n,e){function r(t,n){Var... 

Возможно, потому что их веб-сайт поддерживается только в Chrome и Safari.

Вот код VBA, он не будет нажимать кнопку Exportar todo, даже если я вхожу в блок If правильно:

For Each MyHTML_Element In HTMLDoc.getElementsByClassName("button -tertiary")
Debug.Print "button found"
MyHTML_Element.Click: Exit For
Next

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

В конце я решил использовать Selenium и Chrome, чтобы нажать кнопку, и теперь это работает! Спасибо за вашу помощь, ребята

0 голосов
/ 05 марта 2020

При использовании сценария VBA для автоматизации браузера IE метод getElementsByClassName () возвращает массивоподобный объект всех дочерних элементов, которые имеют все заданные имена классов. Итак, мы должны найти специальный элемент в соответствии с индексом массива.

Пример кода, как показано ниже

Public Sub ClickTest()

    Dim ie As Object

    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate2 "<web site url>"

        While .Busy Or .readyState <> 4: DoEvents: Wend

        ie.document.getElementsByClassName("button -tertiary")(0).Click
    End With
End Sub

Ресурс веб-страницы выглядит так:

  <a class="button -tertiary" href="javascript:alert('hello')">Exportar Todo</a>

Выше образец хорошо работает на моей стороне (используя IE 11), пожалуйста, проверьте его и убедитесь, что мы можем использовать VBA, чтобы найти ссылку в браузере IE.

Затем измените функцию оповещения javascript на вашей функции export_all_to_excel () и проверьте код в функции export_all_to_excel (), убедитесь, что все они поддерживают браузер IE.

Кроме того, здесь есть еще один поток о Нажатие на гиперссылку с частичной ссылкой на Inte rnet Explorer использует vba , вы можете сослаться на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...