Попытка нажать на кнопку с помощью VBA - PullRequest
0 голосов
/ 12 марта 2020

Newb ie здесь, пытаясь нажать на кнопку. Мне нужно открыть браузер, перейти на сайт, заполнить некоторые поля и нажать кнопку. Не работает! Эти коды открывают IE, перемещаются, но не нажимают кнопку ...

Я использую эти коды ниже

Set ie = CreateObject("InternetExplorer.Application")
With ie
ie.Visible = False
ie.navigate "My site"
While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE: DoEvents: Wend
        .document.querySelector("My button ID > a").Click

        Stop
    End With
End Sub

OR THIS ONE

Sub Test2Felipe()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .navigate "My site"

        While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
        .document.querySelector("My button ID > a").Click

        Stop
    End With
End Sub

1 Ответ

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

Как правило, мы могли бы использовать метод getElementById , getElementsByClassName или getElementsByName для доступа к элементам с веб-страницы, согласно ресурсу html вашего веб-сайта, Я предлагаю вам использовать следующий код для доступа к связанным элементам и нажать кнопку:

Public Sub ClickTest()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate2 "https://www4.unimedpoa.com.br/COOPERADO/Mobile/Autenticacao/Login"

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

        'find the textbox and fill value
        ie.Document.getElementById("Usuario").Value = "test"
        ie.Document.getElementById("Senha").Value = "test"

        'Click the button
        ie.Document.getElementsByName("ActionButton")(0).Click  

    End With
End Sub

Для получения более подробной информации, пожалуйста, проверьте следующие ссылки:

Общие методы VBA & Свойства, используемые в веб-автоматизации

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

Редактировать :

Попробуйте закрыть все экземпляры проводника через «Диспетчер задач», затем используйте проводник inte rnet со средним уровнем целостности, код как показано ниже

Public Sub ClickTest()
    Dim ie As New InternetExplorerMedium
    With ie
        .Visible = True
        .Navigate2 "https://www4.unimedpoa.com.br/COOPERADO/Mobile/Autenticacao/Login"

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

        'find the textbox and fill value
        ie.Document.getElementById("Usuario").Value = "test"
        ie.Document.getElementById("Senha").Value = "test"

        'Click the button
        ie.Document.getElementsByName("ActionButton")(0).Click

    End With
End Sub

[Примечание] Пожалуйста, не забудьте добавить ссылки для Microsoft Inte rnet Controls

...