2016-04-23 29 views
0

Ich versuche, ein Programm zum Zugriff auf eine Website zu bekommen, geben Sie eine Postleitzahl ein, fügen Sie die Postleitzahl und drücken Sie dann eine Taste, um zur nächsten Seite zu gelangen. Mein Code ist unten.VBA klicken Sie auf eine bestimmte Schaltfläche

Jetzt bin ich auf dieser Seite fest und kann das Programm nicht auf den "Eigenschaften" Tab klicken und auf die nächste Seite gehen, die ich sehen möchte. Kann ich Hilfe beim Klicken auf diesen Knopf bekommen?

Ich habe .GetElementsbyID("").click versucht, aber das scheint nicht ...

Webseite Code um die Schaltfläche arbeiten will ich drücken:

so
<span class="geographymap-span-tab" id="tab_PROPERTY_PAGE" onclick="showSearchTypeSection('PROPERTY_PAGE','PROPERTY')"><img id="PROPERTY_PAGE_IMG" src="/list/images/PROPERTY_PAGE_2.gif" alt="property" width="80" height="29" border="0" onmouseover="MM_swapImage('PROPERTY_PAGE')" onmouseout="MM_swapImgRestore('PROPERTY_PAGE')"></span> 

Mein Code weit unten ist:

Sub TestProgram() 

Dim i As Long 
    Dim IE As Object 
    Dim objElement As Object 
    Dim objCollection As Object 

    ' Create InternetExplorer Object 
    Set IE = CreateObject("InternetExplorer.Application") 

    ' You can uncoment Next line To see form results 
    IE.Visible = True 

    ' Send the form data To URL As POST binary request 
    IE.Navigate "http://www.listsource.com/build.marketing.list" 

    ' Statusbar 
    Application.StatusBar = "www.listsource.com is loading. Thanks and Gig 'em..." 
' Application.StatusBar = False 

' Wait while IE loading... 
    Do While IE.Busy 
     Application.Wait DateAdd("s", 1, Now) 
    Loop 

'Focus on the drop down menu 
IE.document.getElementByID("locator").Focus 
'Select zip code which happens to be the 19th item 
IE.document.getElementByID("locator").selectedIndex = 19 
'Get to the right page based on that selection 
IE.document.getElementByID("locator").FireEvent ("onchange") 

'input zipcode 

Do While IE.Busy 
     Application.Wait DateAdd("s", 1, Now) 
    Loop 

    Application.StatusBar = "Search form submission. Please wait..." 

    Set objCollection = IE.document.getElementsByTagName("textarea") 

    i = 0 
    While i < objCollection.Length 
     If objCollection(i).Name = "zipTextArea" Then 

      ' Set text for search 
      objCollection(i).Value = "75225" 

     Else 
      If objCollection(i).Type = "button" And _ 
       objCollection(i).Name = "addZip" Then 

       ' "Search" button is found 
       Set objElement = objCollection(i) 

      End If 
     End If 
     i = i + 1 
    Wend 

' pull all elements that are buttons 
Set objInputs = IE.document.getElementsByTagName("button") 

'click button 
For Each ele In objInputs 
    If ele.Name Like "addZip" Then 
     ele.Click 
End If 
Next 


    ' Wait while IE re-loading... 
    Do While IE.Busy 
     Application.Wait DateAdd("s", 1, Now) 
    Loop 


' FIND OUT total # of SFR in each given zip code 
' Click on "Property" button 


End Sub 

Was kann ich hinzufügen, um auf die Registerkarte Eigenschaften zu klicken?

+0

Möglicherweise müssen Sie die Variable für ele einstellen. – Glib

Antwort

0

Oder Sie können das Formular (Suchformular) für alle Elemente mit dem Namen "addzip" überprüfen und klicken Sie auf die erste Begegnung.

'(Dim frm as object) 
'(Dim btnAdd as object) 

Set frm = IE.document.forms("searchform") 
Set btnAdd = frm.all("addzip")(0) 
btnAdd.click 
Verwandte Themen