Jump to content

Recommended Posts

Posted

  Hi,

I am stuck on an issue.  Please understand I do not do development full time, so I may be missing something stupid.  I have searched and tried everything I can think of before posting. 

I have an AutoIT script to login to a website https://eport.equifax.com

I have everything working except for this weird issue where a button ID has a special character in it.  I have tried first copying and pasting the actual text into my script,  The error I get is "IESTATUS_NoMatch (Login xBB)", so the ID is not found.

Local $lbutton1 = _IEGetObjById($oForm,"Login »")

 

I know I am on the right form because all the other fields fill out fine.  I also know that this method works, because there is a second button later on in the login process that works.  Although it does not have a special character. 

I tried passing the character using the code(187) with no luck. 

Local $lbutton1 = _IEGetObjById($oForm,"Login "&chr(187))

I verified that this is correct by adding a MSGBox outputting my string. 

I also tried the string with html:

Local $lbutton1 = _IEGetObjById($oForm,"Login »" and Local $lbutton1 = _IEGetObjById($oForm,"Login " »

I get different results from inspecting the element in IE or Chrome. 

IE:

<input class="submitBtn orange-btn font-arial size-20      " type="submit" value="Login »">

Chrome shows it with the HTML equivalent:

<!--<input class="submitBtn orange-btn font-arial size-20" type="submit" value="Login &raquo;" onclick="javascript:verify(theFORM, 'SUBMIT');">

Am I missing some way that I can do this or am I just left with a mouse position and click?  Or is there a possible cleaner workaround suggestion for this?

I have posted the basics of my script below.  Thanks in advance for your help.

Global $oIE = _IECreate("https://www.eport.equifax.com/eport/eportLogin.htm",0,1,1,1)
WinWaitActive("Equifax")
Local $oForm = _IEFormGetObjByName ($oIE,"mainform")
Local $lcompanyID = _IEFormElementGetObjByName ($oForm,"custid")
Local $luser = _IEFormElementGetObjByName($oForm,"UserID")
Local $lpassword = _IEFormElementGetObjByName($oForm,"password")
Local $lbutton1 = _IEGetObjById($oForm,"Login"&chr(187))
;MsgBox($MB_SYSTEMMODAL, "Title", "Login "&CHR(187))
_IEAction($lbutton1,"click")
_IEFormElementSetValue($lcompanyID,$companyID)
_IEFormElementSetValue($luser,$user)
_IEFormElementSetValue($lpassword,$password)

 

Posted

Hi witzel,

Did you try:

_IEFormSubmit($oForm)

In case this dont work, grab the element by class (submitBtn orange-btn font-arial size-20). The element value is "Login »" not its ID (in this case it doest have one). :)

Posted (edited)

I would propose to test this sollution:

#include <IE.au3>

Global $oIE = _IECreate("https://www.eport.equifax.com/eport/eportLogin.htm", 0, 1, 1, 1)

_Example($oIE)

Func _Example(ByRef $oIE)
    Local $oInput = _MyIE_GetLogin($oIE)
    If @error then Return SetError(@error, @extended, 0)
    _IEAction($oInput, "click")
EndFunc   ;==>_Example

Func _MyIE_GetLogin($oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE, 'input')
    For $oInput_enum In $oInput_coll
        If $oInput_enum.value = 'Login »' Then Return $oInput_enum
    Next

    Return SetError($_IESTATUS_NoMatch, 0, 0)
EndFunc

:)

EDIT
btw.

@witzel please read this:
How to post code on the forum * How to use IE.au3  UDF with  AutoIt v3.3.14.x *

and 

Welcome to the forum.

Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

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...