[IronPython] IronPython and C# not giving the same result

Stanger, Wolfram Wolfram.Stanger at kratzer-automation.com
Thu Jun 17 11:37:29 CEST 2010

Hello all,
unless we get following child elements for example in a empty notepad application all playing be be useless:
Raw View:
  "Window" "Unbenannt - Editor"
    "Document" ""
      "Scrollbar" "Vertikale Bildlaufleiste"
        "Button" "Zurück um kleine Menge"
        "Button" "Vorwärts um kleine Menge"
    "Titelbar" "Unbenannt - Editor"
      "Menubar" "Systemmenüleiste"
        "Menuitem" "System"
      "Button" "Minimieren"
      "Button" "Maximieren"
      "Button" "Schließen"
    "Menubar" "Anwendung"
      "Menuitem" "Datei"
      "Menuitem" "Bearbeiten"
      "Menuitem" "Format"
      "Menuitem" "Ansicht"
      "Menuitem" "?"

It a german window a I have translated the ControlType (1st word; 2nd = name) to english.
The output ist created from the tool UISpy, witch shows all AutomationElements from all application curently running as child beneath the 'desktop' window.
UISpy come from MS and can be downloaded free.


Von: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] Im Auftrag von Lukas Cenovsky
Gesendet: Donnerstag, 17. Juni 2010 10:52
An: Discussion of IronPython
Betreff: Re: [IronPython] IronPython and C# not giving the same result

I tried your IronPython script and it found one child element which name is ''.

Change the print line to:
print 'Name:',  ae.Current.Name

-- Lukáš

yngipy hernan wrote: 


	All root elements are ok. Thus say, i can see all (?) of the root elements.

	But not when trying to iterate child elements of the Notepad automation element.

	My Info:
	W7 32 bit (UAC disabled)
	.Net 4.0
	On Wed, Jun 16, 2010 at 10:08 AM, Lepisto, Stephen P <stephen.p.lepisto at intel.com> wrote:

		I was able to successfully run that python code under both IronPython 2.0.3 and IronPython 2.6.1 and it produced a list of all top-level applications.  I modified the one line


		if rae.Current.Name == 'Untitled - Notepad':


		to be


		if not rae.Current.Name == '':


		just to see what was actually being found.


		Note: I'm running Windows XP SP3.


		From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of yngipy hernan
		Sent: Tuesday, June 15, 2010 10:09 PM
		To: Discussion of IronPython
		Subject: [IronPython] IronPython and C# not giving the same result


		Hi All,


		I have tried to transliterate the following C# code to IronPython:


		using System;

		using System.Collections.Generic;

		using System.Linq;

		using System.Text;

		using System.Windows.Automation;


		namespace ConsoleApplication1


		    class Program


		        static void Main(string[] args)


		            AutomationElement eNode;

		            eNode = TreeWalker.ControlViewWalker.GetFirstChild(AutomationElement.RootElement);

		            while(eNode != null) {

		                if (eNode.Current.Name == "Untitled - Notepad")


		                    AutomationElement ae;

		                    ae = TreeWalker.ControlViewWalker.GetFirstChild(eNode);


		                    while (ae != null)


		                        System.Console.WriteLine("Name: {0}", ae.Current.Name);

		                        ae = TreeWalker.ControlViewWalker.GetNextSibling( ae);




		                eNode = TreeWalker.ControlViewWalker.GetNextSibling(eNode);






		The output of this program looks like:



		Name: test1

		Name: Untitled - Notepad

		Name: Application



		This is my IronPython code:


		import clr






		import System.Windows.Automation as swu


		rae = swu.TreeWalker.ControlViewWalker.GetFirstChild( swu.AutomationElement.RootElement )

		while rae:

		    if rae.Current.Name == 'Untitled - Notepad':

		        print '-'*24

		        ae = swu.TreeWalker.ControlViewWalker.GetFirstChild( rae )

		        while ae:

		            print ae.Current.Name

		            ae = swu.TreeWalker.ControlViewWalker.GetNextSibling( ae )

		        print '-'*24

		    rae = swu.TreeWalker.ControlViewWalker.GetNextSibling( rae )


		The output of this shows:





		I read somewhere that IronPython used to have issues with UI Automation. Is still the case?




		Users mailing list
		Users at lists.ironpython.com


	Users mailing list
	Users at lists.ironpython.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20100617/930448a4/attachment.html>

More information about the Ironpython-users mailing list