Навигация во втором окне с тем же заголовком окна с помощью VBA - PullRequest
0 голосов
/ 07 августа 2020

Я регулярно захожу на веб-сайт intr anet, который открывает второе окно после нажатия ссылки в первом. Я хотел бы изменить значение элемента «textarea» во втором окне, но у меня проблемы с фокусировкой на правильном окне. Есть ли какие-либо предложения о том, как мне продолжить следующий код, чтобы достичь того, что я хочу сделать?

IE.Navigate webPageURL

PageLoadWait 'sub that checks IE.busy and IE.readystate

With IE.Document.Frames("topFrame").document

   .getElementById("user")=userID

   .getElementById("pwd")=password

   .getElementById("submit"). Click

End With

PageLoadWait 'Second window opened

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

Код VBA для взаимодействия с определенным c IE окном, которое уже открыто

1 Ответ

0 голосов
/ 07 августа 2020

Предположим, вы знаете URL-адрес второго окна, попробуйте следующую функцию:

Private Function SecIE(strURL As String) As InternetExplorer
    ' It needs a reference to 'Microsoft Internet Controls'
    Dim objIE As Object
    For Each objIE In CreateObject("Shell.Application").Windows
        If objIE.Name = "Internet Explorer" Then
            If objIE.Document.Location = strURL Then
                Set SecIE = objIE: Exit Function
            End If
        End If
    Next
End Function

Ее можно вызвать следующим образом:

Sub testFindIEObject()
   Dim secondIE As InternetExplorer
   Set secondIE = SecIE("http://www.msn.com/en-xl/?ocid=iehp&AR=1") 'use your sec Wind URL
   Debug.Print secondIE.Document.Title
End Sub

Я использовал указанный выше URL только для целей тестирования ...

Если вы не знаете, не можете извлечь URL-адрес второго окна, я думаю, что могу адаптировать код, чтобы найти второй, начиная с его заголовка. Необходимо создать переменную stati c и подсчитать windows с тем же заголовком. Первое окно будет пропущено, а второе будет определено как желаемый объект IE.

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