各位VBA IE控制專家好,能否請協助解除以下Bug,因已測試多種方式仍卡關無果,懇請您的協助,感謝。
1.使用Navigate連線公司網頁首頁。
2.第1層按鈕"myMFG 製造單位首頁",因標籤無ID,改使用Class辨識後可順利進入。
3.第2層按鈕"MES Shop",標籤同樣無ID,使用Class相同方法無法進入。且使用搜尋each div, Class, Title掃描方式仍然無效。
Sub test()
'
URL = "https://myasex.kh.????????.com/"
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate URL
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
With .Document
'第一層按鈕執行成功
.getElementsByClassName("nav-link nav-menuitem")(0).Click
'第二層按鈕使用Class標籤執行失效
.getElementsByClassName("sys-btn web")(0).Click
'第二層按鈕使用each div失效
For Each div In .getElementsBytagName("div")
If div.innertext = "ASEEE MES Shop" Then
div.Click
Exit For
End If
Next div
'第二層按鈕使用each title失效
For Each Title In .getElementsBytagName("Title")
If Title.innertext = "ASEEE MES Shop" Then
Title.Click
Exit For
End If
Next Title
'第二層按鈕使用each class失效
For Each Class In .getElementsByClassName("class")
If Class.innertext = "sys-btn web" Then
Class.Click
Exit For
End If
Next Class
End With
End With
End Sub
建議先用笨方法 debug 看看
先確定有這些元素再往下寫
For Each El In .getElementsByTagName("div")
debug.print El.innertext
Next Class
For Each Class In .getElementsByClassName("sys-btn web")
debug.print Class.innertext
Next Class
您好,感謝您的協助。
懇請協助審閱執行結果如下。
'執行錯誤,觸發沒有使用權限。
For Each El In .getElementsByTagName("div")
Debug.Print El.innertext
Next El
'執行正常,但無觸發任何效果。
For Each class In .getElementsByClassName("sys-btn web")
Debug.Print class.innertext
Next class
'執行錯誤,觸發沒有使用權限。
我不知道什麼原因
'執行正常,但無觸發任何效果。
這段程式的原意是「顯示所有 class=sys-btn web 的元素」
以確認有存在這些元素
最多只會「在 VBA 開發環境底下的除錯視窗顯示一些文字」
不會「觸發任何效果」
如果沒有看到任何文字
那就表示「不存在任何 class=sys-btn web 的元素」
請問你是找到 CLICK 不到還是找不到所以 CLICK 不到?