C# 编码 UI 测试 - 在 javascript window.prompt 文本框中输入文本

C# Coded UI testing - enter text into a javascript window.prompt text box

我在 Visual Studio Enterprise 2017 中 运行 编码 UI 测试。

我的测试网页有一个 javascript 弹出窗口要求输入电子邮件地址。我可以找到 confirmationPopup(突出显示正确绘制),我可以单击其中的按钮,例如取消。

confirmationPopup = new WinWindow();
confirmationPopup.SearchProperties.Add(WinWindow.PropertyNames.ControlType, "Dialog");
confirmationPopup.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "#32770");
confirmationPopup.TechnologyName = "MSAA";
confirmationPopup.Find();
confirmationPopup.DrawHighlight();

var cancelButton = new WinButton(confirmationPopup);
cancelButton.SearchProperties.Add(WinButton.PropertyNames.Name, "Cancel");
Mouse.Click(cancelButton);

我正在努力做的是在弹出窗口的输入框中输入文本:

var textInput = new WinEdit(confirmationPopup);
textInput.SearchProperties.Add(WinEdit.PropertyNames.ClassName, "Edit");
textInput.TechnologyName = "MSAA";
textInput.DrawHighlight();
textInput.Text = "bill@microsoft.com";

高亮显示在正确的控件周围,但是 textInput.Text= 行给出了错误 附加信息:"Text" 的 SetProperty 在控件类型上不受支持:Window

知道我做错了什么吗?

这里是一个与javascript提示交互的例子window。

// go to a public site which has a prompt
var window = BrowserWindow.Launch("http://www.javascriptkit.com/javatutors/alert2.shtml");

var contentDiv = new HtmlDiv(window);
contentDiv.SearchProperties.Add(HtmlDiv.PropertyNames.Id, "contentcolumn", PropertyExpressionOperator.EqualTo);

var promptButton = new HtmlInputButton(contentDiv);
promptButton.SearchProperties.Add(HtmlInputButton.PropertyNames.ControlDefinition, "name=\"B4\"", PropertyExpressionOperator.Contains);

promptButton.SetFocus();
Keyboard.SendKeys("{ENTER}");

// now the prompt is showing, find it and set text
var promptWindow = new WinWindow();
promptWindow.SearchProperties.Add(WinWindow.PropertyNames.ControlType, "Dialog");
promptWindow.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "#32770");

promptWindow.DrawHighlight();

var middleWindow = new WinWindow(promptWindow);
middleWindow.DrawHighlight();

var inputBox = new WinEdit(middleWindow);
inputBox.DrawHighlight();
inputBox.Text = "Hello world!";

当使用编码 ui 的检查功能时,我看到中间有一个 window。不管是否使用,我都能找到编辑。