访问网格中的WPF UI元素

时间:2014-10-27 23:12:25

标签: c# wpf xaml user-interface automation

我已经四处寻找并且还没有找到我的问题的答案。简而言之,我正在关注UI自动化的this介绍性指南,并尝试实现类似的设计,以在我的程序中自动化UI测试。

在背景不受影响的情况下,基本上发生的事情是我设置的网格中没有UI元素,因此触发了if-else语句的== null部分。以下是尝试设置“登录”按钮的示例,但文本框和其他按钮等其他元素也存在同样的问题。

//Get LogIn Button
AutomationElement aeLogInButton = null;

aeLogInButton = aeP.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "LoginButton"));

//Tell user if LogIn button was received
Console.WriteLine("Before if Statement");
if(aeLogInButton == null)
{
    throw new Exception("No Login Button!");
}
else
{
    Console.WriteLine("Login Button Found");
}
Console.WriteLine("After if-else");

出于合规性目的,我不得不缩短窗口名称,但我向您保证它是准确写入的。此外,XAML文件中的“登录”按钮的名称是“LoginButton”,因此NameProperty应该正常工作。我不知道为什么它没有找到这些UI元素。如果您能提供任何帮助或帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

将TreeScope.Children更改为TreeScope.Descendants非常有效。感谢大家的帮助。