我在托管 Silverlight xap 的 asp.net 页面上有一个对象(在我的特殊情况下,它位于 IFrame 中,但我也对常规对象感到好奇)。我可以在 UI Spy 中找到该元素,但名称只是说“Silverlight Control”。试图在我的自动化测试中发现 AutomationElement 不成功(每次都控制为空)。Silverlight 代码或 html 中的设置是否有帮助?如果同一页面上有多个 Silverlight 控件,如何区分?
<object id="silverlightClient" style="display:none;" data="data:application/x-silverlight-2," type="application/x-silverlight-2">
<param name="source" value="../../ClientBin/SilverlightApplication.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="#00000000" />
<param name="minRuntimeVersion" value="4.0.41019.0" />
<param name="autoUpgrade" value="true" />
<param name="windowless" value="false" />
</object>
TreeWalker tw = new TreeWalker(new System.Windows.Automation.PropertyCondition(AutomationElement.NameProperty, "Silverlight Control));
AutomationElement control = tw.GetFirstChild(ancestor);
用户界面间谍
Identification
ClassName: "MicrosoftSilverlight"
ControlType: "ControlType.Window"
Culture: "(null)"
AutomationId: "71857844"
LocalizedControlType: "window"
Name: "Silverlight Control"
ProcessId: "7636 (iexplore)"
RuntimeId: "42 2163886"
IsPassword: "False"
IsControlElement: "True"
IsContentElement: "True"
编辑:添加图像,我还意识到该对象位于 IFrame 内。 UISpyImage - 标题名称已删除