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

yngipy hernan yngipy at gmail.com
Wed Jun 16 07:09:08 CEST 2010


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20100616/16c68f3d/attachment.html>


More information about the Ironpython-users mailing list