lkinderman

Cannot select option using _IEFormElementOptionSelect

7 posts in this topic

When I try to select an option in IE using _IEFormElementOptionSelect, the option does not get selected.  Following is the html:

<SPAN class=a-dropdown-container>
<SELECT id=vxa-ab-reporting-period class=a-native-dropdown name=vxa-ab-reporting-period autocomplete="off" jQuery16405592087982872318="7"> 
<OPTION value=LRD>Last reported day</OPTION> 
<OPTION value=1WK>Last reported week</OPTION> 
<OPTION value=1MA>Last reported month</OPTION> 
<OPTION value=TTM>Last reported 12 months</OPTION> 
<OPTION selected value=WTD>Week-to-date</OPTION> 
<OPTION value=MTD>Month-to-date</OPTION> 
<OPTION value=QTD>Quarter-to-date</OPTION> 
<OPTION value=YTD>Year-to-date</OPTION>
</SELECT>
<SPAN style="MIN-WIDTH: 0.5%" id=vxa-ab-reporting-period class="a-button a-button-dropdown" tabIndex=-1>
<SPAN class=a-button-inner>
<SPAN aria-haspopup=true class="a-button-text a-declarative" role=button tabIndex=0 data-action="a-dropdown-button" jQuery16405592087982872318="29"><SPAN class=a-dropdown-prompt>Week-to-date
</SPAN>
</SPAN>
<I class="a-icon a-icon-dropdown">
</I>
</SPAN>
</SPAN>
</SPAN>
 <SPAN id=vxa-ab-time-period-range>From Sep&nbsp;13,&nbsp;2015 to Sep&nbsp;19,&nbsp;2015
</SPAN>

Here is my autoit code:

$oSelect = _IEGetObjById($oIE,"vxa-ab-reporting-period")
MsgBox(0,"","Find Select error = " & @error)
_IEFormElementOptionSelect($oSelect,"LRD","byValue")
MsgBox(0,"","Select option error = " & @error)

Any help would be appreciated!

Share this post


Link to post
Share on other sites



It would be helpful if you say what you see in this two MsgBox.

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
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 API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer 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 * Best coding practices * 

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) * 

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

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

Both return 0 for @error.  So it seems that each of the objects are found.

Share this post


Link to post
Share on other sites

I think you miss something, focus on this:

_IEFormElementOptionSelect ( ByRef $oObject, $sString [, $iSelect = 1 [, $sMode = "byValue" [, $iFireEvent = 1]]] )

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
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 API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer 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 * Best coding practices * 

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) * 

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

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

YES.  You are right.  But now I have fixed and am still having problems selecting my object.  So I have modified my code as follows:

$oSelect = _IEGetObjById($oIE,"vxa-ab-reporting-period")
MsgBox(0,"","Find Select error = " & @error)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"LRD",-1,"byValue")
MsgBox(0,"","form element option select LRD = " & $iFoundFormObject)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"WTD",-1,"byValue")
MsgBox(0,"","form element option select WTD = " & $iFoundFormObject)
_IEFormElementOptionSelect($oSelect,"LRD",1,"byValue")
MsgBox(0,"","Select option error = " & @error)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"LRD",-1,"byValue")
MsgBox(0,"","form element option select LRD = " & $iFoundFormObject)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"WTD",-1,"byValue")
MsgBox(0,"","form element option select WTD = " & $iFoundFormObject)

My logic is to see what is selected.  Here is what gets printed:

Find Select error = 0

form element option select LRD = False

form element option select WTD = True

Select option error = 0

form element option select LRD = True

form element option select WTD = False

I'm just not sure why the screen isn't showing this LRD option being selected.

Share this post


Link to post
Share on other sites

Did you try "byText" ?

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
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 API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer 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 * Best coding practices * 

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) * 

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

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

Yes.  I have tried it.  Here is my code:

$oSelect = _IEGetObjById($oIE,"vxa-ab-reporting-period")
MsgBox(0,"","Find Select error = " & @error)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"Last reported day",-1,"byText")
MsgBox(0,"","form element option select Last Reported Day = " & $iFoundFormObject)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"Week to date",-1,"byText")
MsgBox(0,"","form element option select Week to date = " & $iFoundFormObject)
_IEFormElementOptionSelect($oSelect,"Last reported day",1,"byText")
MsgBox(0,"","Select option error = " & @error)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"Last reported day",-1,"byText")
MsgBox(0,"","form element option select Last reported day = " & $iFoundFormObject)
$iFoundFormObject = _IEFormElementOptionSelect($oSelect,"Week to date",-1,"byText")
MsgBox(0,"","form element option select Week to date = " & $iFoundFormObject)

My output is:

Find Select error = 0

form element option select Last Reported Day = False

form element option select Week to date = True

Select option error = 0

form element option select Last reported day = True

form element option select Week to date = False

 

It looks like when the Last Reported Day option is selected, it doesn't trigger an event.  Any suggestions to make this happen.  What is different about this html that the event wouldn't get triggered?

Thanks!

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