將嘗試儘可能簡潔地做到這一點。Javascript GetElementsByClassName變量位置
在VB.Net中使用瀏覽器控件來運行Javascript來遍歷網頁上的元素。
我擁有它主要是工作,這將解決我最後幾周的價值問題我真的很喜歡這裏的指針。
到目前爲止:
Dim s As String = browser.ExecuteJavascriptWithResult("document.getElementsByTagName('li').length")
If s <> "undefined" Then
Dim iCount As Integer = CInt(s)
For i As Integer = 0 To iCount - 1
Dim classcounter As String = browser.ExecuteJavascriptWithResult("document.getElementsByClassName('classnamehere').length")
Dim iCount2 As Integer = CInt(classcounter)
For i2 As Integer = 0 To iCount2 - 1
MsgBox(BetfairCSControl.ExecuteJavascriptWithResult("document.getElementsByClassName('classnamehere')[0].textContent"))
MsgBox(BetfairCSControl.ExecuteJavascriptWithResult("document.getElementsByClassName('classnamehere')[1].textContent"))
MsgBox(BetfairCSControl.ExecuteJavascriptWithResult("document.getElementsByClassName('classnamehere')[2].textContent"))
Next
Next
End If
這工作。它通過li標籤循環,並給我我期待的數據。然而結果的量可以改變,我認爲像這樣的工作:
For i2 As Integer = 0 To iCount2 - 1
MsgBox(BetfairCSControl.ExecuteJavascriptWithResult("document.getElementsByClassName('classnamehere')[i2].textContent"))
Next
我只是一個變量替換硬編碼的整數。我認爲這會是很容易的部分。
但它顯示我未定義。即使我給它一個變量,它是一個0,1或2的整數,它顯示未定義。 [0]有效,但testcounter = 0,[testcounter]不會。
請有人告訴我這是一個簡單的語法問題或什麼?如果任何人都可以指出我正確的方向,我會非常感激。
它不是IE瀏覽器控件它是第三方。 Textcontent似乎工作正常,它給了我完全我期望的數據。我的問題是我必須給它[0] [1] [2]等等,而不是能夠讓它[循環]並獲得它所有的結果。非常感謝幫助。 –