• 对象操作API
    • 共有的API
    • 每个对象自己的API
    • 虚拟控件API

    对象操作API

    对象操作API的方法分为两类,操作和属性。操作对控件做实际的操作,属性是获得控件的实际属性。因为是异步的,所以获取属性也是以方法的形式,即调用时需要加上括号”()”,并且返回的是Promise。在async函数中可通过加await获得实际的值。

    共有的API

    不同类型的对象操作有不同的操作和属性。它们都有一些共用的操作和属性,如下:

    1. export interface IWinControl extends IWinContainer {
    2. click(x?: number, y?: number, mousekey?: number): Promise<void>;
    3. dblClick(x?: number, y?: number, mousekey?: number): Promise<void>;
    4. wheel(value: number): Promise<void>;
    5. exists(time: number): Promise<boolean>;
    6. hScroll(value: any): Promise<void>;
    7. vScroll(value: any): Promise<void>;
    8. getProperty(propertyIds: PropertyIds): Promise<string | boolean | number>;
    9. waitProperty(propertyIds: PropertyIds, value: string, timeoutSeconds: number): Promise<boolean>
    10. moveMouse(x?: number, y?: number): Promise<void>;
    11. drop(x?: number, y?: number): Promise<void>;
    12. drag(x?: number, y?: number): Promise<void>;
    13. pressKeys(keys: string): Promise<void>;
    14. takeScreenshot(filePath: string): Promise<void>;
    15. //properties
    16. text(): Promise<string>;
    17. name(): Promise<string>;
    18. hwnd(): Promise<number>;
    19. x(): Promise<number>;
    20. y(): Promise<number>;
    21. height(): Promise<number>;
    22. width(): Promise<number>;
    23. enabled(): Promise<boolean>;
    24. focused(): Promise<boolean>;
    25. helpText(): Promise<string>;
    26. labeledText(): Promise<string>;
    27. value(): Promise<string>;
    28. processId(): Promise<number>;
    29. modelImage(options?: {encoding: 'buffer' | 'base64'}): Promise<string> //base64 is the default
    30. }

    具体每个操作和属性的帮助可以在模型管理器中找到。

    每个对象自己的API

    其它的对象因为是继承IWinControl,所以除了这些操作和属性外,还有一些其它的操作和属性。例如:

    CheckBox控件有一个操作,check用于设置是勾选还是清除勾选,一个属性checked用于判断CheckBox的勾选状态:

    1. export interface IWinCheckBox extends IWinControl {
    2. check(value: boolean): Promise<void>;
    3. checked(): Promise<boolean>;
    4. }

    下面是ComboBox特有的方法和属性:

    1. export interface IWinComboBox extends IWinControl {
    2. getItem(index: number): Promise<string>;
    3. itemCount(): Promise<number>;
    4. selectedItem(): Promise<string>;
    5. select(value: string | number): Promise<void>;
    6. open(): void;
    7. }

    更多的控件的操作和属性的帮助可以在模型管理器中找到。

    虚拟控件API

    虚拟控件是特殊的控件,因此它的操作不同于其它控件。它没有其它Windows控件共有的操作和属性,它只有下面的操作 和属性。

    1. export interface IWinVirtual {
    2. click(x: number, y: number, mousekey: number): Promise<void>;
    3. pressKeys(keys: string): Promise<void>;
    4. wheel(value: number): Promise<void>;
    5. }