[英]How to programmatically add a value to a file combo box for automation using TestStack.White
我正在嘗試使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();
使用此方法,當我調用SetValue()函數時,會收到錯誤消息:
Item of text 'fileName' not found.
如何檢查文件名是否在組合框中,如果沒有,則將其插入?
我希望(如果可能)在自動化中進行處理,而不必更改應用程序本身。 我還希望能夠直接將文本插入組合框,而不是自動執行文件選擇器。
我找到了解決方案。
事實證明,可編輯的組合框也可以作為文本框檢索。 因此,我要做的就是更改兩行代碼:
var fileNameTextBox = fileUploadWindow.Get<TextBox>(SearchCriteria.ByAutomationId("fileComboBox"));
fileNameTextBox.Text = fileName;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.