Jump to content
ekim415

IE Loop though list of user names

Recommended Posts

I have made a script that works to export data from a stubborn email archive, the code is below.  We have hundreds of email addresses that this must be run on and in the script there is the word $VARIABLE three times.  I need assistance in figuring out how to loop this script and make it run though a list of user names placed in the three locations in the code below. 

Any ideas/direction is greatly appreciated. 

 

#include <IE.au3>


Call ("signin")

Func signin ()

Global $oIE = _IECreate("\\archive")

; win state sets window to maximum.
WinSetState("Search Archive - Internet Explorer", "", @SW_MAXIMIZE)

Local $username = _IEGetObjById ($oIE, "user_username")
Local $password = _IEGetObjById ($oIE, "user_password")
Local $loginbutton = _IEGetObjById ($oIE,"user_submit")

_IEFormElementSetValue ($username, "UserName")
_IEFormElementSetValue ($password, "Password")

_IEAction ($loginbutton, "click")

EndFunc


_IELoadWait ($oie)


Call ("search")

Func search ()


Local $subject = _IEGetObjById ($oIE, "search_name")
Local $sender = _IEGetObjById ($oIE, "search_sender")

_IEFormElementSetValue ($subject, "Outbound $VARIABLE Jan1-March31 2015")
_IEFormElementSetValue ($sender, "$VARIABLE@email.com")

EndFunc


Send ("{PGDN}" & "{PGDN}" & "{PGDN}" & "{PGDN}")
Sleep (2000)
;Selects date on Calendar
MouseClick("left", 671,450)



Local $searchbutton = _IEGetObjByName ($oIE,"save_results")

_IEAction ($searchbutton, "click")


Sleep(2000)

Global $exportnote = _IEGetObjById ($oIE, "export_note")
_IEFormElementSetValue ($exportnote, "Outbound $VARIABLE Jan1-March31 2015")

 

 

 

 

Share this post


Link to post
Share on other sites

What's about: opening the Help and learning the basics, specialy about variables, arrays, reading(/writing) from(/in files), Loops (while...wend, Do...until) and  concatenating strings?

I can't find a variable named $VARIABLE in your script only the word $VARIABLE as text. 

Edited by AutoBert

Share this post


Link to post
Share on other sites
2 hours ago, ekim415 said:

I need assistance in figuring out how to loop this script and make it run though a list of user names placed in the three locations in the code below. 
Any ideas/direction is greatly appreciated. 

 

Start from code CleanUp.

#include <IE.au3>

Global $oIE = _IECreate("\\archive")
_Example()

Func _Example()
    signin()
    _IELoadWait($oIE)
    search()

    Send("{PGDN}" & "{PGDN}" & "{PGDN}" & "{PGDN}")
    Sleep(2000)
    ;Selects date on Calendar
    MouseClick("left", 671, 450)

    Local $searchbutton = _IEGetObjByName($oIE, "save_results")
    _IEAction($searchbutton, "click")
    _IELoadWait($oIE)

    Local $exportnote = _IEGetObjById($oIE, "export_note")
    _IEFormElementSetValue($exportnote, "Outbound $VARIABLE Jan1-March31 2015")
EndFunc   ;==>_Example

Func signin()
    ; win state sets window to maximum.
    WinSetState("Search Archive - Internet Explorer", "", @SW_MAXIMIZE)

    Local $username = _IEGetObjById($oIE, "user_username")
    Local $password = _IEGetObjById($oIE, "user_password")
    Local $loginbutton = _IEGetObjById($oIE, "user_submit")

    _IEFormElementSetValue($username, "UserName")
    _IEFormElementSetValue($password, "Password")
    _IEAction($loginbutton, "click")
EndFunc   ;==>signin

Func search()
    Local $subject = _IEGetObjById($oIE, "search_name")
    Local $sender = _IEGetObjById($oIE, "search_sender")

    _IEFormElementSetValue($subject, "Outbound $VARIABLE Jan1-March31 2015")
    _IEFormElementSetValue($sender, "$VARIABLE@email.com")
EndFunc   ;==>search



Now you should see what can be done.

 

btw.

You do not need to use Call(.....) 

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites

btw.

What you intend to do here:
 

Send("{PGDN}" & "{PGDN}" & "{PGDN}" & "{PGDN}")
    Sleep(2000)
    ;Selects date on Calendar
    MouseClick("left", 671, 450)

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites
3 minutes ago, mLipok said:

btw.

What you intend to do here:
 

Send("{PGDN}" & "{PGDN}" & "{PGDN}" & "{PGDN}")
    Sleep(2000)
    ;Selects date on Calendar
    MouseClick("left", 671, 450)

 

I don't like that code but I am unable to fill out the form unless I open the pop out calendar and click the date.  So what this is doing is moving to the bottom of the page and selecting the date on a the calendar.

Here is the code from inspect element in case you see a different way to input:

 

<div class="field clear">
      <label class="_" for="search_begin_string">Begins on</label>
      <input name="search[begin_string]" class="custom_date_range calendar hasDatepicker" id="search_begin_string" type="text" size="30" readonly="readonly"><img title="..." class="ui-datepicker-trigger" alt="..." src="/images/calendar.gif">
    </div>

 

Share this post


Link to post
Share on other sites

Try this:

Local $oButton = _IEGetObjByID($oIE, 'search_begin_string')
_IEAction($oButton, 'click')

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites

I encourage you to read:   How to use IE.au3  UDF with  AutoIt v3.3.14.x 
And I hope now you have Idea how to solve your main problem.

mLipok

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites

I have watched several videos and read though some examples and I have learned that this can be solved with an array.  I understand how to make an array and in my example below I have been able to make it function as a msgbox and consolewrite but I am unable to figure out how to get this into the three places I need it to go below currently defined as $a .   Could someone point me to an example or function on how to implement this properly

 

Global $Array[10]

$Array[0] = "user1"
$Array[1] = "user2"
$Array[2] = "user3"
$Array[3] = "user4"
$Array[4] = "user5"
$Array[5] = "user6"
$Array[6] = "user7"
$Array[7] = "user8"
$Array[8] = "user9"
$Array[9] = "user10"

For $a in $Array
    MsgBox(0,"output", $a)
Next
#include <IE.au3>

Global $oIE = _IECreate("\\archive")
_main()

Func _main()
    signin()
    _IELoadWait($oIE)
    search()

    Local $oButton = _IEGetObjByID($oIE, 'search_begin_string')
    _IEAction($oButton, 'click')

    Local $searchbutton = _IEGetObjByName($oIE, "save_results")
    _IEAction($searchbutton, "click")
    _IELoadWait($oIE)

    Local $exportnote = _IEGetObjById($oIE, "export_note")
    _IEFormElementSetValue($exportnote, "Outbound" & $a & "Jan1-March31 2015")
EndFunc   ;==>_Example

Func signin()
    ; win state sets window to maximum.
    WinSetState("Search Archive - Internet Explorer", "", @SW_MAXIMIZE)

    Local $username = _IEGetObjById($oIE, "user_username")
    Local $password = _IEGetObjById($oIE, "user_password")
    Local $loginbutton = _IEGetObjById($oIE, "user_submit")

    _IEFormElementSetValue($username, "UserName")
    _IEFormElementSetValue($password, "Password")
    _IEAction($loginbutton, "click")
EndFunc   ;==>signin

Func search()
    Local $subject = _IEGetObjById($oIE, "search_name")
    Local $sender = _IEGetObjById($oIE, "search_sender")

    _IEFormElementSetValue($subject, "Outbound" & $a & "Jan1-March31 2015")
    _IEFormElementSetValue($sender, $a & "@email.com")
EndFunc   ;==>search

 

Share this post


Link to post
Share on other sites

The Array is working as standalone code by when implemented below with the For loop all $Array variables come across and blank.  What am I missing?

 

#include <IE.au3>

Global $Array[3]

$Array[0] = "user1"
$Array[1] = "user2"
$Array[2] = "user3"

Global $oIE = _IECreate("\\archive")
_main()

Func _main()
    For $Array = 0 to 2
    signin()
    _IELoadWait($oIE)
    search()

    Local $oButton = _IEGetObjByID($oIE, 'search_begin_string')
    _IEAction($oButton, 'click')

    Local $searchbutton = _IEGetObjByName($oIE, "save_results")
    _IEAction($searchbutton, "click")
    _IELoadWait($oIE)

    Local $exportnote = _IEGetObjById($oIE, "export_note")
    _IEFormElementSetValue($exportnote, "Outbound" & $Array & "Jan1-March31 2015")
    Next
EndFunc   ;==>_main

Func signin()
    ; win state sets window to maximum.
    WinSetState("Search Archive - Internet Explorer", "", @SW_MAXIMIZE)

    Local $username = _IEGetObjById($oIE, "user_username")
    Local $password = _IEGetObjById($oIE, "user_password")
    Local $loginbutton = _IEGetObjById($oIE, "user_submit")

    _IEFormElementSetValue($username, "UserName")
    _IEFormElementSetValue($password, "Password")
    _IEAction($loginbutton, "click")
EndFunc   ;==>signin

Func search()
    Local $subject = _IEGetObjById($oIE, "search_name")
    Local $sender = _IEGetObjById($oIE, "search_sender")

    _IEFormElementSetValue($subject, "Outbound" & $Array & "Jan1-March31 2015")
    _IEFormElementSetValue($sender, $Array & "@email.com")
EndFunc   ;==>search

 

Share this post


Link to post
Share on other sites
_IEFormElementSetValue($exportnote, "Outbound" & $Array & "Jan1-March31 2015")

HINT: When you are using Array You should use index.

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites
1 hour ago, mLipok said:
_IEFormElementSetValue($exportnote, "Outbound" & $Array & "Jan1-March31 2015")

HINT: When you are using Array You should use index.

Thank you for leading me to the answer!  This works properly if I call the For loop on the main function otherwise I get an error stating its not defined in the other functions which makes sense because the $i is not global.  Thank you again, I started learning AutoIt two weeks ago so I apologize if I missed some very basic things but greatly appreciate your help!

 

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

Global $Array[3]

$Array[0] = "user1"
$Array[1] = "user2"
$Array[2] = "user3"

Global $oIE = _IECreate("\\archive")

For $i = 0 to 2
    _main()
Next

Func _main()
    signin()
    _IELoadWait($oIE)
    search()

    Local $oButton = _IEGetObjByID($oIE, 'search_begin_string')
    _IEAction($oButton, 'click')

    Local $searchbutton = _IEGetObjByName($oIE, "save_results")
    _IEAction($searchbutton, "click")
    _IELoadWait($oIE)

    Local $exportnote = _IEGetObjById($oIE, "export_note")
    _IEFormElementSetValue($exportnote, "Outbound" & $Array[$i] & "Jan1-March31 2015")
EndFunc   ;==>_main

Func signin()
    ; win state sets window to maximum.
    WinSetState("Search Archive - Internet Explorer", "", @SW_MAXIMIZE)

    Local $username = _IEGetObjById($oIE, "user_username")
    Local $password = _IEGetObjById($oIE, "user_password")
    Local $loginbutton = _IEGetObjById($oIE, "user_submit")

    _IEFormElementSetValue($username, "UserName")
    _IEFormElementSetValue($password, "Password")
    _IEAction($loginbutton, "click")
EndFunc   ;==>signin

Func search()
    Local $subject = _IEGetObjById($oIE, "search_name")
    Local $sender = _IEGetObjById($oIE, "search_sender")

    _IEFormElementSetValue($subject, "Outbound" & $Array[$i] & "Jan1-March31 2015")
    _IEFormElementSetValue($sender, $Array[$i] & "@email.com")
EndFunc   ;==>search

 

Share this post


Link to post
Share on other sites

Declare your funcs with params: {example: Func signin($sUser, $Pass)}
and call it with the params and it would work. 

Btw.: where are your passwords stored?

Edited by AutoBert

Share this post


Link to post
Share on other sites
12 hours ago, AutoBert said:

Btw.: where are your passwords stored?

Thank you for the tip on declaring the functions.

There are no passwords stored.  In the signin function the defined value for username and password is static because with the cabinet admin account we have access to everything by only defining the email address in the search.

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • By Codenameglassy
      Hello so i need help, so i have a while(1) Loop but i want to restart the loop form the begining if a specific event occurs or what i want on screen is occured.. i want  to restart the loop from beginning , leaving the rest of the script.
      But if the event didnt occur it follows the rest of the script and goes on while loop..
    • By TrashBoat
      Im trying to iterate through a 2d array created by 
      ProcessList() function that returns a 2d array containing names and pid's, i wanted to filter through the names and delete entries that have "svchost.exe" and this is how i did it
      Func _Sanitize($array) For $x = 1 To UBound($array) - 1 ConsoleWrite($array[$x][0] & @CRLF) If $array[$x][0] == "svchost.exe" Then _ArrayDelete($array, $x) EndIf Next EndFunc ;==>_Sanitize And i get this error message
      What is wrong?
    • By gahhon
      Global Const $DIR_WA_FOLDER = @MyDocumentsDir & '\Whatsapp Extension' Global Const $DIR_SHORTCUT = @DesktopDir & '\WhatsappWeb.exe' Func _Create_Shortcut() Local $sMessage = "Creating shortcut " _Metro_SplashTextScreen(1, "", $sMessage) AdlibRegister("_Metro_LoopInProgress") If FileExists($DIR_WA_FOLDER) Then $iDelete = FileDelete($DIR_SHORTCUT) If $iDelete Then _FileWriteLog($LOG_INSTALLATION, "Debug: Desktop's shortcut is deleted.") Else _FileWriteLog($LOG_INSTALLATION, "Debug: Desktop's shortcut is not found. But, desktop's shortcut is still created.") EndIf If FileExists($DIR_WA_FOLDER & '\WhatsappWeb.exe') Then $iCreate = FileCreateShortcut($DIR_WA_FOLDER & '\WhatsappWeb.exe', $DIR_SHORTCUT) If $iCreate Then _Metro_MsgBox(0, "", "Desktop shortcut is now created!") _FileWriteLog($LOG_INSTALLATION, "Debug: Desktop's shortcut is created.") Else _Metro_MsgBox(0, "", "Desktop shortcut is failed to created!") _FileWriteLog($LOG_INSTALLATION, "Error: Fail to create shortcut.") EndIf Else _Metro_MsgBox(0, "", "Source not found!") _FileWriteLog($LOG_INSTALLATION, "Error: WhatsappWeb.exe is not found.") EndIf Else _Metro_MsgBox(0, "", "Source not found!") _FileWriteLog($LOG_INSTALLATION, "Error: Whatsapp Extension folder is not found.") EndIf AdlibUnRegister("_Metro_LoopInProgress") _Metro_SplashTextScreen(0) EndFunc So I do have a button to trigger this create shortcut to desktop.
      But after it created shortcut at desktop, I cannot execute the shortcut as it has no any response.
      Then I go try trigger the file at the source path @MyDocumentDir & '\Whatsapp Extension\WhatsappWeb.exe' and it work as expected.
      Then I go to check my log, and it shows:- (P/S: I already did trigger the function twice)
      2019-02-28 23:27:32 : Debug: Desktop's shortcut is not found. But, desktop's shortcut is still created. 2019-02-28 23:27:33 : Debug: Desktop's shortcut is created. 2019-02-28 23:28:40 : Debug: Desktop's shortcut is not found. But, desktop's shortcut is still created. 2019-02-28 23:28:41 : Debug: Desktop's shortcut is created. So based on my log shows, it failed to locate the shortcut, but it did exists there.
       
      P/S: This project is done developed weeks ago, every testing is passed. Is just somehow the executable cannot be execute.
       
       
      Any advise?
    • By chrweav86
      Here is an existing AS400 PCOM script that I have: 
      #include-once
      #cs ----------------------------------------------------------------------------
       UDF Header Title: _PCOMM
       UDF Header Version: 0.1.0
       AutoIt Version: 3.3.8.1
       Author:         Jason S. - Jewelry Supply, Inc.
       Script Function: PCOMM UDF Header
                          For use with IBM AS/400 - IBM OS/400 - IBM System i - IBM i application system.
                          This PCOMM UDF Header targets ASW - an ERP application suite written in IBM's RPG language (yuck!),
                          although it will work for any AS/400 system and is not ASW specific.
                          PCOMM allows injection of keystrokes into the datastream of
                          a running terminal/console application ("Green Screen" Console Emulator).
                              - Assumes Session 'A' but can be overriden using the aswConnect() function.
                          PCOMM allows observing of characters in the datastream of a running
                          terminal/console application ("Green Screen" Console Emulator).
                              - Assumes Session 'A' but can be overriden using the aswConnect() function.
      #ce ----------------------------------------------------------------------------
      Global $Session = "A"
      Global $Ps
      Global $Oia
      ; Specify session to connect to
      Func aswSetSession($nSession)
          $Session = $nSession
      EndFunc
      ; Connect to ASW
      ; @param $nSession - Specify session to connect to. Ex: "A"
      Func aswConnect($nSession = $Session)
          $Obj_ConnMgr = ObjCreate("PCOMM.autECLConnMgr")
          $OBJ_EmulSession = ObjCreate("PCOMM.autECLSession")
          $OBJ_EmulSession.SetConnectionByName($nSession)
          $Ps = $OBJ_EmulSession.autECLPS
          $Oia = $OBJ_EmulSession.autECLOIA
      EndFunc
      ; Send Data to ASW
      ; if $rownum and $colnum are not specified, defaults to the cmd line
      Func aswSend($keys, $rownum = 20, $colnum = 7, $inhibit = 1)
          $Ps.SendKeys($keys, $rownum, $colnum)
          if $inhibit = 1 Then
              While $Oia.InputInhibited <> 0
              WEnd
          EndIf
          $Oia.WaitForInputReady()
      EndFunc
      ; Get Data from ASW
      Func aswGet($row, $col, $length)
          $info = $Ps.GetText($row,$col,$length)
          return $info
      Endfunc
      ; Check which page we are on
      ; @param $page - Page to see if we are on. Ex: "DMR30101" == Sales Order Maintenance page
      Func checkScreen($page, $rownum = 1, $colnum = 72, $length = 8)
          If StringInStr(aswGet($rownum, $colnum, $length), $page) Then
              Return 1
          Else
              Return 0
          EndIf
      EndFunc
      I would like to use it launch a connection to the AS400. I have an executable that I run with an hod file. Do I just need to run the exe and hod file then run the session connect function and send keys function to pass credentials?
       
    • By FordsFinest
      Have come across an issue where I use the below code to select and then click an item. It works great on every computer but one, which happens to be my bosses computer (of course right lol).  So SelectItem works fine, but for some reason, the ClickItem command keeps clicking the item below the correct item (but only on this computer. I changed the command to controlsend instead, but i'd rather use the click option.. any ideas here?
       
      _GUICtrlTreeView_SelectItem($hWnd, $Array2[1]) _GUICtrlTreeView_ClickItem($hWnd, $Array2[1], "right")  
×
×
  • Create New...