Mithilfe von VBA zur Abgabe eines javascript-Formular
Ich Schreibe ein Programm zum ausfüllen eines Formulars auf einer Webseite und dann Einreichen. Aber ich kann nicht das Formular zu senden.
Habe ich noch einen link zu der website.
Den button namens "Get Instant Quotes', aber ich kann nicht scheinen, um in der Lage sein, um die Referenz überhaupt.
Mein code bisher
Application.Calculation = xlCalculationAutomatic
'Determine Number of Quotes
If Range("Start").Offset(2, 0) = "" Then
TotalQuotes = 1
Else
TotalQuotes = Range("Start").End(xlDown).Row - 4
End If
i = 4
T = i - 3
Application.StatusBar = "Getting Quote " & T & " out of " & TotalQuotes
Do Until Worksheets("Front").Cells(i, 1) = ""
Website = Worksheets("Front").Range("A1")
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate Website
IE.Visible = True
While IE.Busy
DoEvents 'wait until IE is done loading page.
Wend
While IE.readyState <> 4
DoEvents
Wend
'Type of Product
'Life Only
Worksheets("Front").Select
If Mid(Cells(i, 2), 2, 1) = "T" Then
CIC_IND = 0
CIC_Type = "guaranteed"
Else
CIC_IND = 1
CIC_Type = Cells(i, 7)
If CIC_Type = "G" Then
CIC_Type = "guaranteed"
Else
CIC_Type = "(reviewabl"
End If
IE.Document.getElementById("IncludeCriticalIllnessPolicyYes").Click
End If
'Name
IE.Document.getElementById("strFirstName").Value = "Andy Williams"
'Address
IE.Document.getElementById("address").Value = "10 Jones Street"
'City
IE.Document.getElementById("city").Value = "leicester"
'Post Code
IE.Document.getElementById("strPostcode").Value = "LE1 2GH"
'Phone Number
IE.Document.getElementById("strPhoneNumber").Value = "01245337235"
'Email
IE.Document.getElementById("strEmail").Value = "[email protected]"
'Single or Joint
If Left(Cells(i, 3), 1) = "J" Then
IE.Document.getElementById("strData3").Value = "YOU_PARTNER"
Else
IE.Document.getElementById("strData3").Value = "YOU"
End If
'Level or Decreasing
If Left(Cells(i, 2), 1) = "D" Then
IE.Document.getElementById("strData4").Value = "MORTGAGE_PROTECTION"
Else
IE.Document.getElementById("strData4").Value = "PL_COVER"
End If
'Sum Assured
SumAssured = Worksheets("Front").Cells(i, 6)
IE.Document.getElementById("strData2").Value = SumAssured
'Policy Term
Policy_Term = Worksheets("Front").Cells(i, 5)
IE.Document.getElementById("strData5").Value = Policy_Term
'Date of Birth
DOB_Year = Right(Cells(2, 1), 4) - Cells(i, 4)
DOB_Month = Mid(Cells(2, 1), 4, 2)
DOB_Day = Left(Cells(2, 1), 2)
IE.Document.getElementById("strDOBDay").Value = DOB_Day
IE.Document.getElementById("strDOBMonth").Value = DOB_Month
IE.Document.getElementById("strDOBYear").Value = DOB_Year
'Gender
IE.Document.getElementById("strGender").Value = "MALE"
'Smoker Status
If Right(Cells(i, 3), 1) = "M" Then
IE.Document.getElementById("StrSmoker").Value = "YES"
Else
IE.Document.getElementById("StrSmoker").Value = "NO"
End If
'If Left(Cells(i, 3), 1) = "J" Then
' Joint_Ind = 1
' IE.document.GetElementById("SecondApplicantTitle").Value = "2"
' IE.document.GetElementById("SecondApplicantForename").Value = "Andrea"
'IE.document.GetElementById("secondApplicantSurname").Value = "Williams"
'Date of Birth
'DOB_Year = Right(Cells(2, 1), 4) - Cells(i, 4)
'DOB_Month = Mid(Cells(2, 1), 4, 2)
' DOB_Month = 3
' DOB_Day = Left(Cells(2, 1), 2)
' DOB = DOB_Day & "/" & DOB_Month & "/" & DOB_Year
' IE.document.GetElementById("SecondApplicantDateOfBirth").Value = DOB
'Smoker Status
'If Right(Cells(i, 3), 1) = "M" Then
' IE.document.GetElementById("SecondApplicantSmokerYes").Click
'Else
' IE.document.GetElementById("SecondApplicantSmokerNo").Click
'End If
'Else
' Joint_Ind = 0
'End If
- Zeig uns etwas code.
- Der sourcecode in der Nähe der Schaltfläche div class="row " inset"> <a href="javascript:void(0);" class="button orange getQuotes großen">Sofortige Zitate</a>
- Man sagt auch, diese in den source-code <div class="Kontaktform quoteForm"> <div class="contactFormInner"> <div class="Angebot"><img src="/img/from5.png" width="136" height="136" alt="Von £5 ein Monat" border="0" /></div> <h3 class="withoffer">Drei-Stufen-Leben-Versicherungen-Zitat-Service</h3>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit IE unterstützt getELementsByClassName, können Sie auf das Anker-element (Get Instant Anführungszeichen) wie folgt (und sollte in der Lage sein zu klicken - obwohl ich habe es nicht ausprobiert):
Lassen Sie mich wissen, ob das funktioniert. Wenn nicht, werde ich setup eine test-site, und wir können es von dort nehmen.
BEARBEITEN
Hier ist ein test ich das setup (mit MS-Access 2007-VBA), die lediglich bewirkt, dass das Formular eingereicht werden. Da habe ich nicht ausgefüllt, alle Felder, die Website zeigt die erforderlichen Felder, die leer sind. Probieren Sie es aus:
IE8-Lösung
Diese Lösung verwendet getElementsByTagName, die unterstützt wird von IE8.