2017-08-27 16 views
2

私はパーセルID:220022400803300を入力しようとしていますが、検索ボックスにパーセルIDを置き、送信ボタンをクリックしても結果が得られません。フォームデータの送信方法

誰でもこれを手伝ってもらえますか、これを行うにはより良い方法があれば教えてください。

サイトは、そのサイトを訪問した後、私はその後、私はparcel #ラジオボタンを選択し、ページの下部にSearch your Real Property. Click Here.をクリックして、パーセルID番号220022400803300を入れて、Searchボタンをクリックしhttp://eringcapture.jccal.org/caportal/CAPortal_MainPage.aspxですが、それは何の結果が見つかりましたしばらく返さない手動でそれを行います1結果を与える。

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 
+0

あなたがナビゲートしているページに検索ボックスはありません。 – sktneer

+0

@sktneerページの下部にあるあなたの実物を検索すると、検索ボックスがあります – Rohan

答えて

2

ページには、異なる文字列形式の非表示のPidがあります。

あなたのコードに追加:

あなたが検索ボックスをクリックしたときにページがやったPOST要求に探して、単純に設立さ
'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 

関連する問題