<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-2655510740205693038.post3042992490809401309..comments</id><updated>2009-01-30T04:43:14.159-08:00</updated><category term='Introduction'/><title type='text'>Comments on Brian's House of Bilz: UI Automation Not Fit for Command!</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://brian.genisio.org/feeds/3042992490809401309/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html'/><author><name>Bilzmoude</name><uri>http://www.blogger.com/profile/00821599794835500923</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2655510740205693038.post-7763586092359455336</id><published>2009-01-30T04:43:00.000-08:00</published><updated>2009-01-30T04:43:00.000-08:00</updated><title type='text'>Shawn,&lt;br&gt;&lt;br&gt;After re-reading my post, I feel a b...</title><content type='html'>Shawn,&lt;BR/&gt;&lt;BR/&gt;After re-reading my post, I feel a bit sheepish for saying that the framework has "failed".  I regret that.  It was unprofessional of me.  I could have toned down my rhetoric quite a bit in that post and I apologize.  &lt;BR/&gt;&lt;BR/&gt;That being said, I still maintain that this framework is extremely difficult to use.  I have used many automation frameworks and this ranks up there as one of the hardest to use.&lt;BR/&gt;&lt;BR/&gt;In addition, as someone who writes a lot of tests for his code, I have a problem with being required to implement providers in my code to leverage a test harness.  This is not a requirement for UI testing.  &lt;BR/&gt;&lt;BR/&gt;I have found that a roll-your-own approach to UI testing (for .NET) is much easier and more flexible than using UIA in its current form.&lt;BR/&gt;&lt;BR/&gt;I will be very interested to see what advances UIA makes in .NET 4.0.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/7763586092359455336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/7763586092359455336'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html?showComment=1233319380000#c7763586092359455336' title=''/><author><name>Brian</name><uri>http://www.blogger.com/profile/09870893143113928241</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html' ref='tag:blogger.com,1999:blog-2655510740205693038.post-3042992490809401309' source='http://www.blogger.com/feeds/2655510740205693038/posts/default/3042992490809401309' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2053280789'/></entry><entry><id>tag:blogger.com,1999:blog-2655510740205693038.post-6436803109168855800</id><published>2009-01-30T02:44:00.000-08:00</published><updated>2009-01-30T02:44:00.000-08:00</updated><title type='text'>I don't think this framework has failed. It is unf...</title><content type='html'>I don't think this framework has failed. It is unfair to assume that UIA will just work on all 3rd party applications. I think it was designed to work by using compatible provider / client implementations. By that I mean a target application that implements UIA successfully by way of server provider where required (for custom wpf controls or any pre-wpf applications where accessibility is lacking) and a client that ensures at least .NET 3.0 framework exists in the machine where the automation is executed (Jeff, your "os specific" problem. It is not os specific, you are simply lacking the correct .NET framework. For any other functionality you simply need to ensure that you have implemented server / client provider to cater for the controls lacking in accessibility features you require. This will only need to be done once.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/6436803109168855800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/6436803109168855800'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html?showComment=1233312240000#c6436803109168855800' title=''/><author><name>Shawn Barrett</name><uri>http://www.blogger.com/profile/18272575338696287035</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html' ref='tag:blogger.com,1999:blog-2655510740205693038.post-3042992490809401309' source='http://www.blogger.com/feeds/2655510740205693038/posts/default/3042992490809401309' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-611878170'/></entry><entry><id>tag:blogger.com,1999:blog-2655510740205693038.post-4728530264988195687</id><published>2008-11-05T07:57:00.000-08:00</published><updated>2008-11-05T07:57:00.000-08:00</updated><title type='text'>itjstagame:  I think you have misunderstood what I...</title><content type='html'>itjstagame:  I think you have misunderstood what I am talking about.  Your solution is great if you have a reference to the actual LinkLabel.  &lt;BR/&gt;&lt;BR/&gt;I am talking about the UIA framework, which doesn't give references to the actual objects.  It gives you an automation controller.  From there, you can't do what you are referring to.&lt;BR/&gt;&lt;BR/&gt;I believe the PerformClick is not available on the LinkLabel directly because the interface is implemented explicitly.  Casting does the job.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/4728530264988195687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/4728530264988195687'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html?showComment=1225900620000#c4728530264988195687' title=''/><author><name>Brian</name><uri>http://www.blogger.com/profile/09870893143113928241</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html' ref='tag:blogger.com,1999:blog-2655510740205693038.post-3042992490809401309' source='http://www.blogger.com/feeds/2655510740205693038/posts/default/3042992490809401309' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2053280789'/></entry><entry><id>tag:blogger.com,1999:blog-2655510740205693038.post-8796218685628837312</id><published>2008-11-04T09:03:00.000-08:00</published><updated>2008-11-04T09:03:00.000-08:00</updated><title type='text'>Yours was the first result as I looked for clickin...</title><content type='html'>Yours was the first result as I looked for clicking a link label.  After a bit more searching I found this page: http://msdn.microsoft.com/en-us/library/system.windows.forms.linklabel.system.windows.forms.ibuttoncontrol.performclick(VS.80).aspx&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt; (LinkLabel as IButtonControl).PerformClick();&lt;BR/&gt;&lt;BR/&gt;I've run in to this many times before, the framework seems very good allowing typing transitions, why they don't just inheret the same function I don't know.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/8796218685628837312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/8796218685628837312'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html?showComment=1225818180000#c8796218685628837312' title=''/><author><name>itjstagame</name><uri>http://www.blogger.com/profile/03283019446059718081</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html' ref='tag:blogger.com,1999:blog-2655510740205693038.post-3042992490809401309' source='http://www.blogger.com/feeds/2655510740205693038/posts/default/3042992490809401309' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2088924584'/></entry><entry><id>tag:blogger.com,1999:blog-2655510740205693038.post-4495956621511370320</id><published>2008-10-10T20:08:00.000-07:00</published><updated>2008-10-10T20:08:00.000-07:00</updated><title type='text'>I agree about the Microsoft UIA framework.  The Wh...</title><content type='html'>I agree about the Microsoft UIA framework.  The White framework (http://www.codeplex.com/white) does a good job of abstracting the UIA framework by providing a UI element-oriented framework (as opposed to MS's pattern-oriented one) built on top of UIA.  White gives you classes of objects to work with, such as Buttons, TextBoxes, ComboBoxes, etc.&lt;BR/&gt;&lt;BR/&gt;However, UIA doesn't live up to what I was hoping for.  I wrote some NUnit tests that automated some of my regression tests.  By using UIA, UISpy, and White, I came up with a nice set of automated tests, or so I thought I did.  The tests work very well in Windows Vista (UIA successfully finds all of the UI elements I ask it to look for, etc.).  However, when I run the same tests in WinXP, UIA fails to find some trivial UI elements (e.g., tool strip items and grid rows).  Since I need to test our software in both Vista and XP, having to write around these OS-sensitive issues is not acceptable.&lt;BR/&gt;&lt;BR/&gt;Maybe MS will roll out a UIA 2.0...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/4495956621511370320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2655510740205693038/3042992490809401309/comments/default/4495956621511370320'/><link rel='alternate' type='text/html' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html?showComment=1223694480000#c4495956621511370320' title=''/><author><name>Jeff Peirson</name><uri>http://www.blogger.com/profile/01938426828146362693</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://brian.genisio.org/2008/10/ui-automation-not-fit-for-command.html' ref='tag:blogger.com,1999:blog-2655510740205693038.post-3042992490809401309' source='http://www.blogger.com/feeds/2655510740205693038/posts/default/3042992490809401309' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-907135543'/></entry></feed>
