测试UI /设置的重点是文本框
本文关键字:文本 UI 设置 测试 | 更新日期: 2023-09-27 17:50:41
我在测试TextBox的值时遇到了问题。首先,我向您展示测试用例的代码:
[TestCase]
public void trage_kilogramm_ein()
{
var windowPeer = new FrameworkElementAutomationPeer(this.zieleTest);
var liste = windowPeer.GetChildren();
var boxPeer = (TextBoxAutomationPeer)liste[34];
boxPeer.VerifyAccess();
var buttonPeer = (ButtonAutomationPeer)liste[9];
var button = (Button)buttonPeer.Owner;
var box = (TextBox)boxPeer.Owner;
box.Visibility = Visibility.Visible;
box.VerifyAccess();
box.Focus();
testWindow.Dispatcher.BeginInvoke(DispatcherPriority.Input, new Action (boxPeer.SetFocus));
var args = new RoutedEventArgs(Button.ClickEvent, button);
button.RaiseEvent(args);
Assert.AreEqual("8", ((IValueProvider)boxPeer).Value);
}
我有一个窗口,有10个文本框,你可以把值。我也有10个按钮的数字从0到9,只是发送一个特定数字的关键事件。在代码中,我模拟数字/按钮"8"的单击事件。我的问题是,我不能设置焦点上的文本框。我的测试总是失败,因为"文本框。文本"仍然是"字符串。空",不获取值"8"。
谢谢。
//编辑:好了,现在我知道焦点了。似乎我需要把焦点放在父母身上。我写了两个方法看看我是否得到KeyboardFocus。
private void Gewicht_obere_OnPreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
Console.WriteLine("Got Focus");
}
private void Gewicht_obere_OnLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
Console.WriteLine("Focus Lost");
}
问题是现在我得到了焦点,但我马上失去了它。
获取特定控件(在本例中为TextBox)的引用。
Dispatcher.BeginInvoke((ThreadStart)delegate
{
control.Focus();
});