无法使用 Teststack/White 在 modal/dialog 内的编辑字段中输入文本
Not able to enter text in a edit field inside a modal/dialog using Teststack/White
我正在尝试在模式 window 的编辑字段中输入文本。我得到一个错误 "Failed to get (ControlType=edit or ControlType=document),AutomationId=1118,ClassName=Edit"
以下是我的代码。
var window = app.GetWindow("Toolkit Version");
Window AuthWindow = null;
AuthWindow = window.ModalWindow("Please Authenticate");
TextBox userNameField = AuthWindow.Get<TextBox>(SearchCriteria.ByClassName("Edit").AndAutomationId("1118"));
userNameField.Text = "Administrator";
来自检查
错误详情 -
TestStack.White.AutomationException: 'Failed to get (ControlType=edit or ControlType=document),AutomationId=1118,ClassName=Edit'
有什么建议或解决方法吗?
谢谢!
超出我的想象:
也许您的 SearchCriteria 过于严格?尝试:
TextBox userNameField = AuthWindow.Get<TextBox>(SearchCriteria.ByAutomationId("1118"));
甚至
TextBox userNameField = AuthWindow.Get(SearchCriteria.ByAutomationId("1118")) as TextBox;
它可能不是很优雅,但看起来你的window很小而且控件很少。为什么不这样挑选呢?
TextBox userNameField = AuthWindow.GetMultiple(SearchCriteria.ByControlType(System.Windows.Automation.ControlType.Edit)[0]
我以为您的文本框位于位置 0,但您当然可以更改它。
我正在尝试在模式 window 的编辑字段中输入文本。我得到一个错误 "Failed to get (ControlType=edit or ControlType=document),AutomationId=1118,ClassName=Edit"
以下是我的代码。
var window = app.GetWindow("Toolkit Version");
Window AuthWindow = null;
AuthWindow = window.ModalWindow("Please Authenticate");
TextBox userNameField = AuthWindow.Get<TextBox>(SearchCriteria.ByClassName("Edit").AndAutomationId("1118"));
userNameField.Text = "Administrator";
来自检查
错误详情 -
TestStack.White.AutomationException: 'Failed to get (ControlType=edit or ControlType=document),AutomationId=1118,ClassName=Edit'
有什么建议或解决方法吗? 谢谢!
超出我的想象:
也许您的 SearchCriteria 过于严格?尝试:
TextBox userNameField = AuthWindow.Get<TextBox>(SearchCriteria.ByAutomationId("1118"));
甚至
TextBox userNameField = AuthWindow.Get(SearchCriteria.ByAutomationId("1118")) as TextBox;
它可能不是很优雅,但看起来你的window很小而且控件很少。为什么不这样挑选呢?
TextBox userNameField = AuthWindow.GetMultiple(SearchCriteria.ByControlType(System.Windows.Automation.ControlType.Edit)[0]
我以为您的文本框位于位置 0,但您当然可以更改它。