Авторизуйтесь в сети через JavaScript - PullRequest
1 голос
/ 21 мая 2019

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

Это мой код:

Option Explicit
Sub DescargaInformes()


    Dim ieApp As InternetExplorer
    Dim ieDoc As Object
    Dim ieTable As Object
    Dim clip As DataObject
    Dim oHTML_Element As Object

    'creamos nueva instancia del IE y vamos a la web
    Set ieApp = New InternetExplorer
    With ieApp
        .Navigate "https://mediamarkt.zendesk.com/access/unauthenticated"
        .Visible = True
    End With

    'esperamos a que la web esté cargada
    Do While ieApp.Busy: DoEvents: Loop
    Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

    Set ieDoc = ieApp.Document

    'rellnamos los datos de login y pass
    With ieDoc
        .getElementById("user_email").Value = "user"
        .getElementById("user_password").Value = "pass"
    End With

    'esperamos a que la web esté cargada
    Do While ieApp.Busy: DoEvents: Loop
    Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop

    Set ieDoc = ieApp.Document

End Sub

Может кто-нибудь указать мне на правонаправление о том, как войти здесь?

Это (как мне кажется) код, который показывает пользователя и передает идентификаторы:

<div class="credentials">
              <label for="user_email">Correo electrónico</label>
              <input name="user[email]" id="user_email" autofocus="autofocus" type="email" autocomplete="on">
              <label for="user_password">Contraseña</label>
              <input name="user[password]" id="user_password" type="password" autocomplete="off">
            </div>

Редактировать: я получаю здесь ошибку .getElementById("user_email").Value = "user" требуется объект.

1 Ответ

1 голос
/ 21 мая 2019

Это внутри iframe, так что либо договориться об этом, либо использовать iframe src direct

Прямая:

Option Explicit
'VBE > Tools > References:
' Microsoft Internet Controls

Public Sub Login()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate2 "https://mediamarkt.zendesk.com/auth/v2/login/signin?return_to=https%3A%2F%2Fmediamarkt.zendesk.com%2F&theme=hc&locale=1&brand_id=2726349&auth_origin=2726349%2Cfalse%2Ctrue"

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

        With .document
            .querySelector("#user_email").Value = "joe.bloggs@hotmail.com"
            .querySelector("#user_password").Value = "abcde"
            .querySelector("[value='Sign in']").Click
        End With

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

        Stop

        .Quit
    End With
End Sub

Переговоры по iframe:

Option Explicit
'VBE > Tools > References: Microsoft Internet Controls
Public Sub Login()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate2 "https://mediamarkt.zendesk.com/access/unauthenticated"

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

        With .document.getElementsByTagName("iframe")(0).contentDocument
            .querySelector("#user_email").Value = "joe.bloggs@hotmail.com"
            .querySelector("#user_password").Value = "abcde"
            .querySelector("[value='Sign in']").Click
        End With

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

        Stop

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