Доступ к полям внутри iframe - PullRequest
1 голос
/ 06 июня 2019

По какой-то причине я не могу получить доступ к элементам внутри iframe.

Я пробовал:

ie.Document.getElementById("sisaltosivu").contentDocument.getElementById("uusihaku")(0).Click

Вот мой код:

Sub ChechAutomate()

    Dim ie As New InternetExplorer, url As String, ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Other Data")

    url = "https://www.asiakastieto.fi/data/atdb"

    With ie
        .Visible = True
        .Navigate2 url

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

        With .Document

        If .querySelectorAll("#btnb").Length > 0 Then

        Else

            .querySelector("[name=user1]").Value = "x"
            .querySelector("[name=user2]").Value = "x"
            .querySelector("[name=passwd]").Value = "x"
            .querySelector("[class=btnb]").Click

            Application.Wait (Now + TimeValue("00:00:01"))

            ie.Navigate2 "https://www.asiakastieto.fi/sopimusasiakas/kotimaa?lang=FI"

            Application.Wait (Now + TimeValue("00:00:01"))
             ie.Document.getElementById("sisaltosivu").contentDocument.getElementById("uusihaku")(0).Click

        End If

        End With

    End With

End Sub

enter image description here

1 Ответ

2 голосов
/ 06 июня 2019

Вы больше не находитесь за пределами iframe, когда переходите к источнику iframe. Эта строка:

ie.Navigate2 "https://www.asiakastieto.fi/sopimusasiakas/kotimaa?lang=FI"

должно означать, что вы сейчас находитесь в документе, указанном в iframe, и должны иметь прямой доступ с:

.document.getElementById("uusihaku")(0).Click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...