Использование White / UIAutomation Как получить контекстное меню, вызываемое правой кнопкой мыши

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

В следующем примере показан случай, когда я открыл новое окно с помощью (проводника Windows внутри него), получил его правильную ссылку из доступного DesktopWindows (обратите внимание, что я могу переместить его нормально) и вызвал контекстное меню с помощью щелчка правой кнопкой мыши.

var windowName = "This is a WinForms window: {0}".format(3.randomLetters());
var topPanel = O2Gui.open<Panel>(windowName,600,200 );
var webBrowser = topPanel.add_WebBrowser_Control();

webBrowser.open("".o2Temp2Dir());
var guiAutomation = new API_GuiAutomation();
var window = guiAutomation.desktopWindow(windowName);
window.move(0,0);
window.mouse_MoveTo();
guiAutomation.mouse().rightClick(); 

window.infoTypeName();
return window.Popup;

//O2File:API_GuiAutomation.cs
//O2Ref:White.Core.dll 
//O2Ref:UIAutomationClient.dll

Я попытался использовать переменную window.Popup для получения всплывающего окна, но оно было пустым (не то чтобы объект окна имел тип White.Core.UIItems.WindowItems.WinFormWindow


person Dinis Cruz    schedule 17.03.2011    source источник


Ответы (1)


Похоже, вы ответили на свой вопрос здесь: http://white.codeplex.com/discussions/250129
;)

РЕДАКТИРОВАТЬ: я нашел способ сделать это:

public static PopUpMenu getContextMenu(this API_GuiAutomation guiAutomation)     
    {
        try
        {
            var emptyWindow = guiAutomation.desktopWindow("");
            return emptyWindow.Popup;
        }
        catch
        {
        }
        return null;
    }

которые затем можно употреблять следующим образом:

    var contextMenu =  guiAutomation.getContextMenu();
    contextMenu.menu("Git Clone...").click();
person Rami A.    schedule 05.05.2011