2014-11-21 45 views
0

我可以打開瀏覽器和我想要使用的頁面。但實際的興趣點是名爲「下一個」的鏈接。我想單擊該鏈接,但我試圖在我的代碼中獲取該元素失敗。這是我迄今爲止所做的。如何使用vbscript單擊嵌入在html的錨標記中的超鏈接?

Dim URL 
Dim IE 
Set IE = CreateObject("internetexplorer.application") 
URL = "http://mylink.com/" 
IE.Visible = True 
IE.Navigate URL 

Dim a 
Set a = IE.Document.GetElementsByTagName("arrowRight") 

For i = 0 To a.Length - 1 
    MsgBox "Found it" 
    a.Click 
    Exit For 
Next 

這是「下一個」超級鏈接是如何在頁面中嵌入代碼:

<a class="arrowRight" href="http://SomeURL.com/150.html">Next</a> 
+0

SO不是其他人爲您編寫代碼的地方。到目前爲止您嘗試了什麼,以及您需要幫助的具體問題? – 2014-11-21 17:30:34

+0

你好Ansgar!哈!我的道歉,但我絕對沒有期待完整的代碼版本,並再次抱歉,如果這是我以前的帖子傳達。無論如何,這是我在搜索後發佈我的原始問題。雖然我要發佈的內容與我在上面的帖子中提到的內容不同,但是一旦我解決了這個問題,我就可以繼續發展。無論如何,我在頁面上沒有ID的特定元素遇到問題。恐怕我對這個評論的字符數量限制不夠,所以讓我告訴你下面的評論中的代碼 – Jrules80 2014-11-21 17:54:35

回答

0

arrowRight是(CSS)類名,而不是一個標籤名,所以你需要檢查a帶有類別的標籤arrowRight

For Each a In ie.document.getElementsByTagName("a") 
    If a.getAttribute("class") = "arrowRight" And a.innerText = "Next" Then 
    a.Click 
    Exit For 
    End If 
Next 
+0

不能upvote(顯然我必須有15個代表)。所以,很好的解決方案效果很好。但由於某種原因,a.innerText失敗。所以,我不得不刪除它。另外,我想我將不得不在循環之前添加一些休眠時間,因爲如果頁面在光標位於循環中時不加載,它將失敗。還是謝謝! – Jrules80 2014-11-21 18:55:44

+0

不客氣。如果您發現它解決了您的問題,請考慮[接受答案](http://meta.stackoverflow.com/a/5235)。至於等待IE完成加載頁面,在IE.Navigate後添加一行'While IE.ReadyState <> 4:WScript.Sleep 100:Wend'。 – 2014-11-21 21:13:39

相關問題