Wie kann ich mithilfe von excel vba auf einen link auf einer web-Seite
Ich Schreibe ein vba-Skript, das entworfen ist, zu erhalten, ticker-symbol von einem Benutzer, wechseln Sie zu einer website, Eingabe der ticker-symbol und klicken Sie auf den entsprechenden link. Leider bin ich mit Mühe auf den link klicken. Ich habe schon recherchiert das StackOverflow Frage und Antwort, aber ich glaube nicht, haben eine innertext-Wert zu nutzen. Ich habe auch verbrachte eine gute Stunde die Erforschung einer möglichen Lösung online ohne Glück.
Mein VB-script folgt:
Sub clicklick()
Dim ie As Object
Dim form As Variant, button As Variant
Set ie = CreateObject("InternetExplorer.Application")
ticker = InputBox("Enter Ticker Symbol: ")
With ie
.Visible = True
.Navigate ("http://www.SITE_URL.com")
While ie.ReadyState <> 4
DoEvents
Wend
ie.document.getElementsbyName("sSrchTerm").Item.innertext = ticker
End With
End Sub
Den link, den ich versuche zu klicken, wird wie folgt im Quelltext der Seite:
<a class="hqt_button" href="javascript:void(0): onclick=HeaderBox.trySubmit()"></a>
Kann mir jemand sagen, wie ich kann auf den link klicken. Das element scheint nicht zu haben, einen Namen, innertext oder id, damit ich nicht wissen, wie um es zu bekommen.
EDIT:
Set Link = ie.document.getElementsByTagName("a")
For Each l In Link
If Link.classname = "hqt_button" Then
Link.Click
Exit For
End If
Next l
GetElementsByTagTame("a")
, dann iterieren, Sammlung, überprüfung, um sicherzustellen, dass das element .href
konsistent ist und/oder die Klasse "hqt_button"?So etwas wie:
class = "hqt_button", href= ", javascript:void(0):..."
So etwas, wie den Edit oben.
Ich denke, du bist auf dem richtigen Weg, aber versuchen
If l.classname = "hqt_button" Then...
und dann müssen Sie Next l
oder einfach Next
-- nicht Next link
.InformationsquelleAutor Mutuelinvestor | 2014-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, die Sammlung von Anker-tags, mit:
Dann Durchlaufen diese Sammlung mit so viel Logik wie möglich, um sicherzustellen, dass Sie klicken mit der rechten Taste.
Wenn es mehrere Anker mit dem gleichen Klassennamen, die man tun könnte:
Alternativ
Wenn Sie mit IE9+, die Sie verwenden könnten, die
GetElementsByClassName
Methode.InformationsquelleAutor David Zemens
Können Sie auch ein CSS-Selektor von
Den
"."
bedeutet className.[]
umschließt ein Attribut. Die oben sagt classNamehqt_button
mit dem Attributhref
mit Wert'javascript:void(0): onclick=HeaderBox.trySubmit()'
innerhalb einesa
tag.CSS-Abfrage:
Syntax in VBA:
CSS-Selektoren angewendet werden, die über die
[.querySelector][2]
Methode des HTMLDocument.InformationsquelleAutor QHarr