我想在 gdax 上自动购买。但是我在金额窗口中的输入没有被识别。我可以在小字段上看到,上面写着:Total (LTC) ≈ 0.00000000
我的代码:
Sub test()
Dim ObjIE As New InternetExplorer
Dim Ohtml As HTMLDocument
Dim HTMLtags As IHTMLElementCollection
Dim HTMLtag As IHTMLElement
Dim HTMLobjekt As IHTMLElement
Dim item_limit As Object
Dim y As Integer
With ObjIE
.Visible = True
.navigate "https://www.gdax.com/trade/LTC-EUR"
Do Until .readyState = READYSTATE_COMPLETE: Loop
Set Ohtml = .document
End With
'Amount
Do
Set HTMLtags = Ohtml.getElementsByClassName("OrderForm_input-box_XkGmi")
DoEvents
Loop While HTMLtags.Length = 0
For Each HTMLtag In HTMLtags
If HTMLtag.Children(1).innerText = "EUR" Then
Set HTMLobjekt = HTMLtag.Children(0)
HTMLobjekt.Value = 100 ' this is the part that i excanged
End If
Next HTMLtag
'get the Total(LTC) to cross check
Do
Set HTMLtags = Ohtml.getElementsByClassName("OrderForm_total_6EL8d")
DoEvents
Loop While HTMLtags.Length = 0
For Each HTMLtag In HTMLtags
Debug.Print HTMLtag.innerText & "Total(LTC)"
Next HTMLtag
End Sub
代码完成后网站是这样说的:
它应该是这样的,当我手动输入数字时看起来是这样的:
我还将标记的部分与以下内容交换:
HTMLobjekt.innerText = 100
或
HTMLobjekt.innerText = "100"
或
HTMLobjekt.Value = "100"
但没有任何效果。
最佳答案
在采取任何行动之前,您需要确保页面已完全加载。我检查了动态生成的此类类的可用性 OrderBookPanel_text_33dbp
。然后我做了你想做的剩下的事情。最后,在将金额放入占位符之前,您需要先聚焦
目标。应用以上所有内容,您的脚本应该更像下面这样:
Sub Get_Value()
Dim HTML As HTMLDocument, tags As Object
Dim tag As Object, ival As Object
With CreateObject("InternetExplorer.Application")
.Visible = True
.navigate "https://www.gdax.com/trade/LTC-EUR"
While .Busy = True Or .readyState < 4: DoEvents: Wend
Set HTML = .document
Do: Set tags = HTML.querySelector("[class^='OrderBookPanel_text_']"): DoEvents: Loop While tags Is Nothing
Do: Set tag = HTML.querySelector("input[name='amount']"): DoEvents: Loop While tag Is Nothing
tag.Focus
tag.innerText = 100
Set ival = HTML.querySelector("[class^='OrderForm_total_']")
[A1] = ival.innerText
.Quit
End With
End Sub
此时输出:
0.79139546
关于javascript - 网站无法识别我的输入 [如何从 VBA 手动触发 IE dom 事件],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48611570/