Как щелкнуть одну ссылку, которая меняет каждый логин? - PullRequest
0 голосов
/ 04 августа 2020

Мне нужно сделать событие щелчка по этой ссылке href

<li><a href="TerminalReport.aspx?pid=20635&amp;key=7G76887">Report</a></li>

PID и KEY меняются каждый раз, поэтому я не могу использовать .navigate .. Есть ли какой-нибудь код для частичного совпадения для поиска для "*" & "TerminalReport" & "*" и нажмите?

enter image description here введите описание изображения здесь

Код слишком длинный, чтобы публиковать здесь, он говорит мне добавить больше деталей, поэтому я отправлю код с начала до той части, в которой я застреваю, если я не использую .navigate

Private Sub CommandButton2_Click()

    Dim IE As Object
    Dim Dc_User As String
    Dim Dc_Pass As String
    Dim Dc_URL As String
    Dim txtNam As Object, txtPwd As Object

    Dc_User = "LOGIN"
    Dc_Pass = "PASSWORD"

    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .navigate "https://www.solarmanpv.com/portal/LoginPage.aspx"

        While IE.readyState <> 4
            DoEvents
        Wend
        IE.document.getElementById("uNam").Value = Dc_User
        IE.document.getElementById("uPwd").Value = Dc_Pass

        IE.document.getElementById("Loginning").Click
        
        Application.Wait Now + #12:00:05 AM#

    'THIS IS WHERE I NEED HELP
    .navigate "https://www.solarmanpv.com/portal/Terminal/TerminalReport.aspx?pid=20635&key=78775J8"
    
    End With

End Sub

1 Ответ

1 голос
/ 04 августа 2020

Примерно так:

Private Sub CommandButton2_Click()

    Dim IE As Object
    Dim Dc_User As String
    Dim Dc_Pass As String
    Dim Dc_URL As String
    Dim txtNam As Object, txtPwd As Object
    Dim links As Object, link As Object

    Dc_User = "LOGIN"
    Dc_Pass = "PASSWORD"

    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .navigate "https://www.solarmanpv.com/portal/LoginPage.aspx"
        WaitFor IE
        
        IE.document.getElementById("uNam").Value = Dc_User
        IE.document.getElementById("uPwd").Value = Dc_Pass
        IE.document.getElementById("Loginning").Click
        
        Application.Wait Now + TimeSerial(0, 0, 5) '5 secs

        Set links = .document.getElementById("ct100_cur_item_list").getElementsByTagName("A")
        For Each link In links
            Debug.Print link.href
            If link.href Like "*TerminalReport*" Then
                link.Click
                Exit For
            End If
        Next link
    
    End With

End Sub

Sub WaitFor(IE As Object)
    While IE.readyState <> 4
        DoEvents
    Wend
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...