TestStack.White не может щелкнуть пункт меню? - PullRequest
0 голосов
/ 23 октября 2018

В настоящее время я делаю программу, которая будет автоматизировать задачу, которую мне нужно выполнить для программы.

Одна из проблем, с которыми я сейчас сталкиваюсь, - это «нажатие» на меню в строке меню.

Я нашел имя класса для строки меню, используя 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 (или чего-либо еще на самом деле) вызывает исключениечто он не может найти «ДЕЙСТВИЯ».

Могу ли я найти такой текст?Или я должен прибегнуть к использованию ввода мышью - то есть автоматизации движений мыши?

РЕДАКТИРОВАТЬ:

Я также пытался сделать это так:

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();

Но этоперемещает мою мышь вокруг центра моего экрана.

1 Ответ

0 голосов
/ 20 ноября 2018

Я видел "строку меню", заключенную в другой элемент управления, который затем можно использовать, чтобы найти то, что вы предположительно считали дочерним элементом указанной строки меню.

В одном из моих случаевстрока меню была в окне (всплывающем окне), затем я нахожу «действие» во всплывающем окне, как показано ниже.

Window PopUp => Window.ModalWindows().Last(); //Gets the latest popup
var all = PopUp.GetMultiple(SearchCriteria.ByControlType(ControlType.Text)); //Get all the options, most cases, the menu items are in a textbox, use whatever you see in your spy tool
var menu = all.FirstOrDefault(m => m.Name.Equals("actionValue") && m.Visible); 
menu?.Click();

Heads up - я столкнулся с проблемой щелчка с этим типом элемента управления ранее, надеюсь,это не случится для вас ... "нажмите на нить" на объекте, чтобы заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...