返回列表 上一主題 發帖

vba控制網頁 browser碰上alert停住了

回復 1# singo1232001
提供另一種繞過 alert 視窗的方法
Sub test()
    Dim x
    Dim oie As Object: Set oie = CreateObject("internetexplorer.application")
    With oie
        .Visible = True
        .Navigate "https://login.104.com.tw/login.cfm"
        Do While .readystate <> 4 Or .busy: DoEvents: Loop
        .Document.getelementByid("id_name").Value = "aaa"
        For Each x In .Document.getElementsByTagName("input")
            If x.Type = "submit" And x.Value = "會員登入" Then
                With .Document.parentWindow
                   .execScript "window.nativeAlert = window.alert"   '儲存原始的alert
                    .execScript "window.alert = function() {}"    '覆寫alert function
                    x.Click
                    .execScript "window.alert = window.nativeAlert"   '還原原始的alert
                End With
                Exit For
            End If
        Next
        Do While .readystate <> 4 Or .busy: DoEvents: Loop
        .Quit
    End With
End Sub
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 7# PKKO
想請教一:這個語法適用於所有網站的單一確認視窗嗎?

未必,看網站是用哪種方法彈出視窗,當然你也可能看不出來他是用哪種方法
主要是 alert 視窗會阻擋你的程式下一步執行,又蠻常見的,
這邊只是猜測它用 alert 方法彈出視窗,然後
對你自己建的 ie 元件,暫時性地蓋過原本的alert動作而已


想請降二:若是有是或否的視窗呢?以及選擇檔案的視窗呢?有辦法處理嗎

有是或否的視窗 推測是用 confirm 來產生的
http://www.w3schools.com/js/js_popup.asp
可以用類似方法泡製,但要回傳 true 或 false

選擇檔案的視窗,通常是要上傳檔案吧
這我不熟,網頁擷取很少做到上傳檔案的
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題