我正在尝试访问UI测试框架(MS UI测试)中的本机Wpf控件属性。我的具体问题是,当我尝试使用函数调用WpfButtonObject.GetProperty(“IsVisible”)访问WpfButton控件属性(例如,IsVisible)时,会发生异常“System.NotSupportedExceptions”。我能够使用Snoop看到这个WpfButton属性;所以,我想知道GetProperty调用是否正确?请参阅下面的相关代码。感谢您的任何见解。
UIMap.cs:按下WpfButton的测试功能。请注意调用uIButton.GetPropery(“IsVisible”)。这是异常发生的地方:
public void PressButtonTest()
{
WpfButton uIButton = this.UIMainWindowWindow.UIButtonButton;
object state = uIButton.GetProperty("IsVisible"); // Throws SystemNotSupportedException exception
bool stateBool = (bool)state;
Assert.IsTrue(stateBool, "Button is visible");
PressButton();
}
UIMap.Designer.cs:WpfButton属性:
public WpfButton UIButtonButton
{
get
{
if ((this.mUIButtonButton == null))
{
this.mUIButtonButton = new WpfButton(this);
#region Search Criteria
this.mUIButtonButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "button";
this.mUIButtonButton.WindowTitles.Add("MainWindow");
#endregion
}
return this.mUIButtonButton;
}
}
答案 0 :(得分:1)
这就是我所做的:
Point point;
bool isClickable = uIButton.TryGetClickablePoint(out point);
Assert.IsTrue(isClickable, "No clickable point was found, button not visible.");
顺便说一下,Assert(第二个参数)中的消息是不准确的,因为它只在失败时使用...在你的情况下,当按钮不可见时。所以在你的输出中它会说"按钮是可见的"事实上它没有失败。