问题
I am trying to go on a website, type a value in a textbox and then click the searchbutton to search for my value. My Problem is, that i can't get the button element, to fire the click event.
VBA:
Dim i As Long
Dim objElement As Object
Dim objCollection As Object
Dim result(2) As String
Dim timeout As Integer
Dim test As Object 'testweise
If IE Is Nothing = False Then
IE.Quit
End If
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
Start:
' Send the form data To URL As POST binary request
IE.navigate "https://www.bundesanzeiger.de/ebanzwww/wexsservlet"
' Wait while IE loading...
Do While IE.Busy
DoEvents
Application.Wait DateAdd("s", 1, Now)
Loop
IE.Document.getElementbyid("genericsearch_param.fulltext").Value = "Mielke"
IE.Document.getElementbyid("(page.navid=to_quicksearchlist)").Click
HTML
<div class="bbg"><input name="(page.navid=to_quicksearchlist)" type="submit" alt="Suchen" value="Suchen"></div>
the secont getElement call is supposed to get the button, the object is null though. Does anyone know where i did a mistake?
回答1:
Replace:
IE.Document.getElementbyid("(page.navid=to_quicksearchlist)").Click
with:
Set x = IE.Document.GetElementsByName("(page.navid=to_quicksearchlist)")
x(0).Click
You need to look for the element by the Name not the Id
回答2:
You are using getElementById
, which looks for the id
of an element.
Your input button does not have any id
attribute set, and this is why you cannot find it.
Add a value for the id
attribute as so, and you will see it working:
<input id="xyz" ... />
Then:
IE.Document.getElementbyid("xyz").Click
来源:https://stackoverflow.com/questions/31201788/vba-getelementbyid-doesnt-work-for-button