[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.
 
Greetings
Wolfram


________________________________

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: 

	Hi, 

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

		                    System.Console.WriteLine("-------------------");

		                    while (ae != null)

		                    {

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

		                        ae = TreeWalker.ControlViewWalker.GetNextSibling( ae);

		                    }

		                    System.Console.WriteLine("-------------------");

		                }

		                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

		 

		clr.AddReference('UIAutomationTypes')

		clr.AddReference('UIAutomationProvider')

		clr.AddReference('UIAutomationClient')

		 

		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:

		------------------------

		test1

		------------------------

		 

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

		 

		Regards,

		Yngipy


		_______________________________________________
		Users mailing list
		Users at lists.ironpython.com
		http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
		
		


	
________________________________


	_______________________________________________
	Users mailing list
	Users at lists.ironpython.com
	http://lists.ironpython.com/listinfo.cgi/users-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