无法在UI Test中访问本机WpfButton,获取Exception:System.NotSupportedExceptions

时间:2017-06-07 16:57:55

标签: wpf ui-automation coded-ui-tests

我正在尝试访问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;
        }
    }

1 个答案:

答案 0 :(得分:1)

这就是我所做的:

Point point;
bool isClickable = uIButton.TryGetClickablePoint(out point);
Assert.IsTrue(isClickable, "No clickable point was found, button not visible.");

顺便说一下,Assert(第二个参数)中的消息是不准确的,因为它只在失败时使用...在你的情况下,当按钮不可见时。所以在你的输出中它会说"按钮是可见的"事实上它没有失败。