Jump to content

Recommended Posts

Posted (edited)

So basically, if I remove that statement, my program doesn't work. It is unable to find the form.

Any idea why?

 

Uh, I'll also post my code.

#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Excel.au3>
#include <Array.au3>

Func MyErrFunc()
   seterror(1)
EndFunc
Local $readDir=InputBox("Chilli KREF Automation", "What is the path to the file", "C:\Users\Horace\Downloads\Simple.xlsx")
Local $writeDir=InputBox("Chilli KREF Automation", "What is the directory you want to write to?", "C:\Users\Public\Documents\")
Local $startEntry=InputBox("Chilli KREF Automation", "What entry would you like to start at?", "1")
Local $oExcel=_ExcelBookOpen($readDir)
Local $firstNameArray=_ExcelReadSheetToArray($oExcel, 2, 1, 0, 1)
Local $lastNameArray=_ExcelReadSheetToArray($oExcel, 2, 2, 0, 1)
Local $cityArray= _ExcelReadSheetToArray($oExcel, 2, 3, 0, 1)
Local $numberOfEntries=$firstNameArray[0][0]
_ExcelBookClose($oExcel)


Local $oIE = _IECreate("http://www.kref.state.ky.us/krefsearch/")

Local $oFrameLeft=_IEFrameGetCollection($oIE, 1)
Local $oFrameMain=_IEFrameGetCollection($oIE, 2)

for $i = $startEntry+1 to $numberOfEntries Step 1;
FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"#1 ")
   if(Mod($i, 50)==0) Then
      _IENavigate($oIE, "http://www.kref.state.ky.us/krefsearch/")
      $oFrameLeft=_IEFrameGetCollection($oIE, 1)
      $oFrameMain=_IEFrameGetCollection($oIE, 2)
   EndIf
   Local $otemp=-50
   _IELinkClickByText($oFrameLeft, "To Candidate(s)")
   _IEBodyWriteHTML($oFrameMain, "")
   if(@error) Then
      FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"error1")
      ContinueLoop
   EndIf

   $oFrameMain=_IEFrameGetCollection($oIE, 2)

   Local $oForm=_IEFormGetCollection($oFrameMain, 0)

   FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"#3 ")

   Local $lastName=$lastNameArray[$i][1]
   Local $firstName=$firstNameArray[$i][1]
   Local $city=$cityArray[$i][1]
   FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"#3.5 ")
   _IEFormElementSetValue($oLastName, $lastName)

   Local $oFirstName=_IEFormElementGetObjByName($oForm, "cFirstname")
   _IEFormElementSetValue($oFirstName, $firstName)
   Local $oCity=_IEFormElementGetObjByName($oForm, "City")
   _IEFormElementSetValue($oCity, $city)
   _IEFormSubmit($oForm)

   _IELinkClickByText($oFrameMain, "Click here to Generate Extract Files")
 
FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"#7 ")
   Local $oFile= _IELinkGetCollection($oFrameMain, 0)
   if(@error) Then
      ;FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"error2")
      ContinueLoop
   EndIf
   Local $url=$oFile.href
   if(StringInStr($url, ".TXT")) Then
      InetGet($url, $writeDir & "\" & $i-1 & ".txt")
   EndIf

   if(@error) Then
      FileWrite("C:\Users\Public\Documents\temp\error.txt", $i&"error3")
      ContinueLoop
   EndIf
Next
Edited by Chilli
Posted

Is it possible that you're checking for an error in the wrong place? Instead of checking for an error from _IEBodyWriteHTML, are you probably trying to check the errors from _IELinkClickByText? If so, you need to move the error check up one line.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted

Nah. The error checking code was something that I added later to try and fix another bug that's caused by the _IEBodyWriteHTML code.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...