How to properly declare class variables (CUIT Controls)
我正在为 WPF 应用程序设置编码 UI 测试,并且我想使用代码方法而不是记录并生成代码方法。我想通过代码使用页面对象,我需要在页面对象中声明控件(按钮、选项卡等)变量,这些变量将被多个函数使用。
我尝试在类中声明变量并在构造函数中添加属性 (pendingButton1)
并创建函数,该函数返回控件并分配给类中的变量(pendingButton2)但均无效。
当我在要在(pendingButton3 和 4)中使用变量的函数中声明变量(或通过函数创建变量)时,它会起作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public partial class Press : Header { WpfToggleButton pendingButton1 = new WpfToggleButton(_wpfWindow); WpfToggleButton pendingButton2 = Controls.Press.getPendingButton(_wpfWindow); public Press(WpfWindow wpfWindow):base(wpfWindow) { this.pendingButton1.SearchProperties[WpfControl.PropertyNames.AutomationId] ="Tab1Button"; } public void clickPendingButton() { WpfToggleButton pendingButton3 = new WpfToggleButton(_wpfWindow); pendingButton3.SearchProperties[WpfControl.PropertyNames.AutomationId] ="Tab1Button"; WpfToggleButton pendingButton4 = Controls.Press.getPendingButton(_wpfWindow); Mouse.Click(pendingButton1); //UITestControlNotFoundException Mouse.Click(pendingButton2); //UITestControlNotFoundException Mouse.Click(pendingButton3); //This works Mouse.Click(pendingButton4); //This works } } |
当我在 clickPendingButton() 函数之外声明 pendingButton 时,我想让它工作,因为它用于多个其他函数。
n
您想要的似乎正是 Coded UI 记录和生成工具生成的排序 f 代码。它创建了许多具有以下风格结构的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public WpfToggleButton PendingButton { get { if ((this.mPendingButton == null)) { this.mPendingButton = new WpfToggleButton( ... as needed ...); this.mPendingButton.SearchProperties[ ... as needed ...] = ... as needed ...; } return this.mPendingButton; } } private WpfToggleButton mPendingButton; |
此代码将按钮声明为类属性