iT邦幫忙

0

VBA控制IE公司頁面按鈕

  • 分享至 

  • xImage

各位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
https://ithelp.ithome.com.tw/upload/images/20220511/20148891B9sq2KlMNF.pnghttps://ithelp.ithome.com.tw/upload/images/20220511/20148891bdfXOXvSjP.png

打雜工 iT邦研究生 1 級 ‧ 2022-05-12 08:02:26 檢舉
IE快淘汰了,建議改別的工具會比較長遠
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-05-11 09:50:13

建議先用笨方法 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
y522476 iT邦新手 5 級 ‧ 2022-05-11 11:38:49 檢舉

您好,感謝您的協助。

懇請協助審閱執行結果如下。

'執行錯誤,觸發沒有使用權限。
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 的元素」

0
blanksoul12
iT邦研究生 5 級 ‧ 2022-05-11 10:53:14

請問你是找到 CLICK 不到還是找不到所以 CLICK 不到?

y522476 iT邦新手 5 級 ‧ 2022-05-11 11:42:24 檢舉

您好,感謝您的回答。

目前測試遇到到的狀況是,可正常執行但無觸發Click的效果。

blanksoul12 iT邦研究生 5 級 ‧ 2022-05-11 11:47:08 檢舉

buttom 有時並不是找到該 element 便可以 click 的,可能需要上一層的東西用 set 來把它們當成一group 才可 click 的

我要發表回答

立即登入回答