Skip to main content

Control Class

This class represents windows objects and is returned by calls to FindTopWindow, FindTopWindows, FindControl, FindControls and WindowFromPoint.

Controls can be windows, dialogs, buttons, comboBoxes or any other windows object that can be identified by a unique window handle.

Control objects interact with the windows object using the Microsoft Windows API methods. It has a low overhead and finding Controls using the Find methods is fast.

For an overview of the Microsoft Windows system see the Microsoft documentation.

The WinDriver Control class mainly uses Windows functions and messages described in Window Reference to operate on widows identified by the window handle. For brave programmers you can use the window handle to call any of the Microsoft windows functions directly within the script.

Some windows UI components such as status bar fields, non-standard or components build from Microsoft WCF or Silverlight are not visible as Control objects. In that case you can try using the AutomationControl Class class

Control Class Properties

string textThe control's text value such as the window caption or label. Note that some controls may not have a label.
System.Drawing.Point CenterThe center of the window
bool EnabledTrue if the windows control is enabled
bool VisibleTrue if the windows control is enabled
HandleRef HandleThe windows handle
int Height, WidthThe control height and width
Point pDefined in System.Drawing.Point. A Class to encapsulate the X & Y coordinates.
int X, YThe control's top left hand X and Y coordinates
int DefaultMaxWaitThe default maximum time in milliseconds that time limited methods will wait e.g. FindControl, FindTopWindow and WaitForWindowVisible and other WaitFor... methods.
string classThe windows class name.
Point CentreThe point at the centre of the window

The Control class MetaData

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Automation;

namespace Facilita.Fc.WinDriver
public abstract class BaseControl : IControl
protected BaseControl(WinDriverVirtualUser vu);
public abstract string AutomationId { get; }
public Point Centre { get; }
public abstract string Class { get; }
public abstract ControlType ControlType { get; }
public abstract bool Enabled { get; }
public abstract HandleRef Handle { get; }
public int Height { get; }
public abstract Rectangle Rectangle { get; }
public abstract string Text { get; }
public abstract bool Visible { get; }
protected WinDriverVirtualUser VU { get; }
public int Width { get; }
public int X { get; }
public int Y { get; }

public abstract void ActivateMenuItem(params string[] menuItemPath);
public abstract void ClickButton();
public void DoubleLeftClick();
public abstract void DoubleLeftClick(int moveRight, int moveDown);
public abstract void ExpandTreeItem(string name);
public abstract IList<string> GetComboBoxItems();
public abstract IList<string> GetListBoxItems();
public abstract int GetListItemCount();
public abstract Point GetListItemLocation(int index);
public abstract Point GetTreeItemLocation(string name);
public abstract Rectangle GetTreeItemRectangle(string name);
public abstract string GetTreeItemText(int index);
public abstract int GetTreeViewItemCount();
public void LeftClick();
public abstract void LeftClick(int moveRight, int moveDown);
public void LeftClickBelowRHS();
public void LeftClickBelowRHS(int moveLeft, int moveDown);
public void LeftClickLHS();
public void LeftClickLHS(int moveRight, int moveDown);
public void LeftClickRHS();
public void LeftClickRHS(int moveLeft, int moveDown);
public void RightClick();
public abstract void RightClick(int moveRight, int moveDown);
public void RightClickLHS();
public void RightClickLHS(int moveRight, int moveDown);
public void SaveBitmap(string pathName);
public abstract void SelectComboBoxItem(int item);
public abstract void SelectComboBoxItem(string item);
public abstract void SelectListBoxItem(int item);
public abstract void SelectListBoxItem(string item);
public abstract void SelectTreeItem(string name);
public void SetCursorPosBottomRHS();
public void SetCursorPosBottomRHS(int moveLeft, int moveUp);
public void SetCursorPosTopLHS();
public void SetCursorPosTopLHS(int moveRight, int moveDown);
public abstract void SetForegroundWindow();
public void Terminate();
public void WaitForWindowCount(string wantedClass, int count);
public abstract void WaitForWindowCount(string wantedClass, int count, int maxWait);
public void WaitForWindowEnabled();
public void WaitForWindowEnabled(int maxWait);
public void WaitForWindowVisible();
public void WaitForWindowVisible(int maxWait);
public void WaitWhileWindowVisible();
public void WaitWhileWindowVisible(int maxWait);