Silverlight UI自动化问题 - 无法找到元素

时间:2011-04-26 11:56:27

标签: silverlight automation

我需要为Silverlight应用程序创建自动化测试,我使用System.Windows.Automation命名空间。我的问题如下:

我使用AutomationElement.FindFirst在UI树中定位UI元素:

AutomationElement toBeInvoked = browser.FindFirst(TreeScope.Descendants,
                    new PropertyCondition(AutomationElement.AutomationIdProperty, id));

这适用于几个步骤,但在它找不到任何东西之后。我检查过屏幕更改后UI树将变空,UISpy只看到Silverlight控件,但仅此而已:screenshot 。 (我也试过使用TreeWalker,但结果是一样的。)如果我手动点击,并用UISpy检查元素,一切都OK。但是当我运行我的代码时,它会停止(通常在同一个按钮上)。

后来我意识到,如果我手动点击我的代码将访问的屏幕,并且在我运行之后,就不会出现任何问题......奇怪。我在FF 3.6,4.0和IE8中尝试过它。每个浏览器的问题都是一样的。

有谁知道什么可能是错的,或者哪里可能是错误?我在代码中遗漏了什么,或者问题出在浏览器的设置中?

提前致谢,问候,

米克洛斯

1 个答案:

答案 0 :(得分:0)

“如果我手动点击,并使用UISpy检查元素,一切正常。但是当我运行我的代码时,它会停止”

您可以通过以下方式模拟手动点击此引起问题的按钮: 1.通过UI Automation获取要单击的按钮的坐标; 2.驱动鼠标点击其坐标(通过win32 mouse_event api);

如果以下步骤可以运行,请参阅。