我目前正在制作一个程序,该程序将自动执行我需要在程序上执行的任务。
我目前遇到的一个问题是“单击”菜单栏中的菜单。
我使用 Spy++ 找到了菜单栏的类名,它被称为 TActionMainMenuBar,但它“下”的所有内容都本地化为 ammbSSC。
https://i.imgur.com/R7lLfVg.png
我可以使用以下命令找到主菜单栏:
var x = window.Get(SearchCriteria.ByClassName("TActionMainMenuBar"));
Console.WriteLine(x.ToString());
返回:
Panel. AutomationId:1311676, Name:ammbSSC, ControlType:pane, FrameworkId:Win32
TestStack.White.Application
但是尝试使用 .ByText 或 .ByIndex (或其他任何东西)查找“ACTIONS”会引发无法找到“ACTIONS”的异常。
我还能找到这样的文字吗?或者我应该求助于使用鼠标输入 - 即自动化鼠标移动?
编辑:
我也试过这样做:
window.GetMultiple(SearchCriteria.ByControlType(ControlType.Pane).AndByClassName("TActionMainMenuBar"))[1].Click();
但这会引发“索引超出了数组的范围。”
我也试过这样做:
window.GetMultiple(SearchCriteria.ByControlType(ControlType.Pane))[1].Click();
和:
window.GetMultiple(SearchCriteria.ByControlType(ControlType.Pane).AndByClassName("TActionMainMenuBar").AndByText("ACTIONS"));
window.Click();
但这会将我的鼠标移动到屏幕中心附近。