C# 如何使用TestStack.White以编程方式向文件组合框添加值以实现自动化

C# 如何使用TestStack.White以编程方式向文件组合框添加值以实现自动化,c#,combobox,automation,C#,Combobox,Automation,我正在尝试自动化我的C#应用程序,其中一部分包括在打开的文件对话框中选择一个文件。窗口打开后,我可以获取必要的UI元素(组合框),但无法将值设置为所需的文件名 我相信这是因为组合框在开始时是空的(也就是说,我从来没有手动使用过这个函数并选择过文件,所以它没有存储在组合框中)。在选择组合框之前,是否有一种方法可以通过编程将其添加到组合框中?这是我目前的代码: var fileUploadWindow = Program.application.GetWindows().Where(win =>

我正在尝试自动化我的C#应用程序,其中一部分包括在打开的文件对话框中选择一个文件。窗口打开后,我可以获取必要的UI元素(组合框),但无法将值设置为所需的文件名

我相信这是因为组合框在开始时是空的(也就是说,我从来没有手动使用过这个函数并选择过文件,所以它没有存储在组合框中)。在选择组合框之前,是否有一种方法可以通过编程将其添加到组合框中?这是我目前的代码:

var fileUploadWindow = Program.application.GetWindows().Where(win => ((win.Name == ("File Upload Directory")))).FirstOrDefault();
var fileNameComboBox = fileUploadWindow.Get<ComboBox>(SearchCriteria.ByAutomationId("fileComboBox"));
fileNameComboBox.SetValue(fileName);
var openButton = fileUploadWindow.Get<Button>(SearchCriteria.ByAutomationId("openButton"));
openButton.Click();
如何检查文件名是否在组合框内,如果不在组合框内,如何插入

我希望(如果可能的话)在自动化中处理这个问题,而不必更改应用程序本身。我还希望能够直接将文本插入组合框,而不是自动选择文件。

我找到了解决方案

事实证明,可编辑的组合框也可以作为文本框检索。所以我所要做的就是更改两行代码:

var fileNameTextBox = fileUploadWindow.Get<TextBox>(SearchCriteria.ByAutomationId("fileComboBox"));
fileNameTextBox.Text = fileName;
var fileNameTextBox=fileUploadWindow.Get(SearchCriteria.ByAutomationId(“fileComboBox”);
fileNameTextBox.Text=文件名;

感谢您在没有评论的情况下投了反对票。我赞赏建设性的批评。
var fileNameTextBox = fileUploadWindow.Get<TextBox>(SearchCriteria.ByAutomationId("fileComboBox"));
fileNameTextBox.Text = fileName;