Can somebody help me with getting text from wpf controls. With a help of inspect.exe I found element selector and now I need to get text from some button and assert that text is as expected?
Good Evening Everyone
Long time since I've been in the forums - missing AutoIt and programming dearly - but on with the question... I hope this one is easy
I am using SimpleSpy / UIAWrappers.au3 to automate an application. I basically have a "Stop" button that I am waiting to change from UIA_IsEnabled:= <False> to UIA_IsEnabled:= <True>
How do I check for the UIA_IsEnabled condition ? Of course SimpleSpy gives all the details of GUI elements... but what code do I use to just check the GUI "Stop" buttons UIA_IsEnabled condition?
Local $oUIElement=_UIA_getObjectByFindAll($oP0, "title:=Stop;ControlType:=UIA_ButtonControlTypeId", $treescope_subtree)
Hey there, i have the code from simplespy but have no idea about what to use, got the UIA_V0_64 files.
I look at the examples but i get lost, i ask for guideance in this matter.
To get to this window simply run:
control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc
select a filetype and click "change program"
I'm developing again (everybody ruuun! )
I would like to develope a script that goes through basicly every user control on a window, and log things that happens, and maybe do some screenshots. I did something like this before.
My problem, which I would like to avoid this time (to improve my understanding and skill) , was that when I was unable to get a ControlID or handler or anything, I simply did some math and clicked on the coordinates it should have been (for example, maxing the window, and knowing the initial set up I was ablo to calculate given control position). I know that this is a bad solution for a number of reasons.
Now I got authorization to install autoIT here, and i started to the work, AU3Info was unable to find anything on the window (this could be a problem, since autoIT doesn't see anything on it then, if I understood the help file) So I got the SimpleSpy script (source:
I added a bit of code to the original to display ID as well, what I received is this:
Mouse position is retrieved 115-207
At least we have an element title: [ADD] class: [Button] ID:  (<-- coded this to display ID here as well)
Having the following values for all properties:
Title is: <ADD> Class := <Button> controltype:= <UIA_ButtonControlTypeId> ,<50000> , (0000C350) 10;187;120;35
*** Parent Information top down ***
3: Title is: <Compass> Class := <Window> controltype:= <UIA_WindowControlTypeId> ,<50032> , (0000C370) -8;-8;1936;1056
2: Title is: <> Class := <MainView> controltype:= <UIA_CustomControlTypeId> ,<50025> , (0000C369) 0;23;1920;1017
1: Title is: <> Class := <TileNavigationView> controltype:= <UIA_CustomControlTypeId> ,<50025> , (0000C369) 0;23;1920;967
0: Title is: <> Class := <AreasView> controltype:= <UIA_CustomControlTypeId> ,<50025> , (0000C369) 0;132;1920;858
so far I wrote this script:
WinActivate('Test') ;It works!! :D first official interaction Sleep(1000) ;1 sec sleep to be sure ControlClick('Test', '', '50000') If @error Then MsgBox($MB_SYSTEMMODAL, 'Error', 'ControlClick error') EndIf Sleep(1000) MsgBox(1,"Tracer message", 'ControlClick has happened') ;MouseClick() ;ControlCommand() AutoIt activates the window, but the click on the given button doesnt happen (I tried to write 50000 without ' ' on ID).
M'I doing the @error part correctly ? (no error Msg has been displayed), sorry I rarely use AutoIT and seems to forget less and less after each neglect, but still I'm far from a proffessional
Any help or suggestion is welcome, thank you for your time and insight!
Have to start learning UIAutomation since I need to use MS EDGE or Chrome. I downloaded Examples_V0_5.zip and UIA_V0_51.zip.
Compiled simplespy.au3 to get started. Appears to work. Did Ctrl+R and get error Line 15226 Error: Subscript used on non-accessible variable. What am I doing wrong?
Example 1 tried to run. It was missing CUIAutomation2.au3. Moved it into folder from UIA.zip to Examples and now works.
Example 2 failed. Added switch to case 0409 and "Start" and it worked.
Example 3 failed. Can't fix.
Code starting at Line 50.
Consolewrite("Get the menu that is after the start button" & @crlf)
$oMenuStart=_UIA_getFirstObjectOfElement($UIA_oDesktop,"Start Menu", $treescope_children) "I tried Start, Menu Start, and Start Menu, none seem to work."
if isobj($oMenuStart) Then
consolewrite("Menu start found" & @crlf)
consolewrite("I bet the text has to change to Start instead of Starten" & @crlf)
Get the menu that is after the start button
I bet the text has to change to Start instead of Starten
"C:\Users\xxxx\Autoit Scripts\UI Automation\EXAMPLES_V0_5\UIAWrappers.au3" (1726) : ==> Variable must be of type "Object".:
$t = $obj.Findfirst($treeScope, $oCondition, $UIA_pUIElement)
$t = $obj^ ERROR
Example 4 fails the same as in see below.
Code starting at Line 30
;~ Start the calculator and notepad
$oCalc=_UIA_getFirstObjectOfElement($UIA_oDesktop,"class:=" & $cCalcClassname, $treescope_children)
$oNotepad=_UIA_getFirstObjectOfElement($UIA_oDesktop,"class:="& $cNotepadClassName, $treescope_children)
if isobj($oCalc) Then
;~ You can comment this out just there to get the names of whats available under the calc window
$oButton=_UIA_getFirstObjectOfElement($oCalc,"name:=" & $cButton1, $treescope_subtree)
ConsoleWrite("I am hee" )
$oButton=_UIA_getFirstObjectOfElement($oCalc,"name:=" & $cButtonAdd, $treescope_subtree)
$oInvokeP.Invoke() This is where it fails
Example text is for dutch calculator so please change text to english or other language to identify controls
"C:\Users\xxxxxxxxxxx\Autoit Scripts\UI Automation\EXAMPLES_V0_5\ex4_calculator.au3" (44) : ==> Variable must be of type "Object".:
There must me something I am missing on why these codes are not working. XML file below of example 4.