Reputation: 319
I am trying to enter parcel ID: 220022400803300 and trying to get result but even after putting the parcel ID in the search box and clicking on submit button it's returning no result found.
Can anyone please help me with this or if there's a better way to do this please let me know.
The site is http://eringcapture.jccal.org/caportal/CAPortal_MainPage.aspx after visiting that site I click on Search your Real Property. Click Here.
at the bottom of page then I select parcel #
radio button and put the parcel id number 220022400803300 and click on Search
button but it returns no result found while do it manually it gives 1 result.
Option Explicit
Option Compare Text
Dim fRD As Long, i As Long, fSR As Long, j As Long
Dim pID As String
Dim IE As SHDocVw.InternetExplorer
Dim Doc As MSHTML.HTMLDocument
Dim urL As String
Dim fnd As Boolean
Sub genOP()
With RD
fRD = .Range("A" & .Rows.Count).End(xlUp).Row
Set IE = New SHDocVw.InternetExplorer
urL = "http://eringcapture.jccal.org/caportal/CAPortal_MainPage.aspx"
For i = 2 To 2
fSR = SR.Range("A" & SR.Rows.Count).End(xlUp).Row + 1
pID = Trim(Format(.Range("A" & i).Value, "0")) ' get PID
If Len(pID) < 8 Then GoTo nextRow
IE.Visible = True
IE.navigate urL
Call WaitForIE
Set Doc = IE.document
Doc.getElementById("Iframe1").contentDocument.getElementById("RealSearchLink").Click
Call WaitForIE
Doc.getElementById("Iframe1").contentDocument.getElementById("SearchByParcel").Checked = True
'SearchByTB
'Delete the first 2 digits from the excel data (parcel ID), e.g. 22002240080330000000 (instead of 0122002240080330000000)
'pID = Right(pID, Len(pID) - 2)
Doc.getElementById("Iframe1").contentDocument.getElementById("SearchText").Value = pID 'Put id in text box
Doc.getElementById("Iframe1").contentDocument.getElementById("Search").Click 'search button
Call WaitForIE
fnd = False
If Trim(Doc.getElementById("Iframe1").contentDocument.getElementById("TotalRecFound").innerText) = "No Records Found." Then
For j = 1 To 6
pID = Left(pID, Len(pID) - 1)
Doc.getElementById("Iframe1").contentDocument.getElementById("SearchText").Value = pID 'Put id in text box
Doc.getElementById("Iframe1").contentDocument.getElementById("Search").Click 'search button
Call WaitForIE
If Trim(Doc.getElementById("Iframe1").contentDocument.getElementById("TotalRecFound").innerText) <> "No Records Found." Then
'Result Found
Stop
fnd = True
Exit For
End If
Next j
Else
'Result Found
Stop
fnd = True
End If
If Not fnd Then
SR.Range("A" & fSR) = "No Records Found"
End If
nextRow:
Next i
IE.Quit
Set IE = Nothing
End With
MsgBox "Process Completed"
End Sub
Sub WaitForIE()
While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
DoEvents
Wend
Application.Wait Now + TimeValue("00:00:05")
End Sub
Upvotes: 2
Views: 798
Reputation: 672
There is an hidden Pid on the page with a different string format.
Add to your code:
'SearchByTB
'Delete the first 2 digits from the excel data
'(parcel ID), e.g. 22002240080330000000 (instead of 0122002240080330000000)
'pID = Right(pID, Len(pID) - 2)
'Creating an hidden pid with string format like this: 22 00 22 4 008 033.00
hiddenPID = Left(pID, 2) & " " & _
Mid(pID, 3, 2) & " " & _
Mid(pID, 5, 2) & " " & _
Mid(pID, 7, 1) & " " & _
Mid(pID, 8, 3) & " " & _
Mid(pID, 11, 3) & "." & _
Mid(pID, 14, 2)
Doc.getElementById("Iframe1"). _
contentDocument.getElementById("SearchText"). _
Value = pID 'Put id in text box
Doc.getElementById("Iframe1"). _
contentDocument.getElementById("HidParcelNo"). _
Value = hiddenPID 'Put hidden pID in the hidden element
Doc.getElementById("Iframe1"). _
contentDocument. _
getElementById("Search").Click 'search button
Founded simply looking on the POST request the page did when you clicked the searchbox.
Upvotes: 2