🖋️
QualityMate
  • QualityMate
  • Getting Started
    • Introduction
    • Why QualityMate
    • Architecture
    • Supported Web Browsers
    • Glossary
  • Components
    • UI Player
      • Basic Concepts
      • UiPlayer
      • MSTest Integration
      • Samples
        • QualityMate Sample Desktop
        • QualityMate Sample Web
        • QualityMate MSTest Integration Sample Desktop
        • QualityMate MSTest Integration Sample Web
        • QualityMate Integration with Test Frameworks
        • Web Authentication Sample
      • QualityMate Project Template
    • UI Recorder
      • Basic Concepts
      • Setting Up the Recorder
      • Validating an Element
      • Generating QualityMate Solution
  • Tools
    • File Comparators
    • Image Processor
    • Project Merger
    • Test Case Generator
      • Filters
      • Rename Recorded Controls
  • Basic Concepts
    • Page Object
      • Work Guide
    • Controls
      • Control Types
        • Generic Types
        • Desktop types
        • Web Types
        • WebMap types
          • Kendo PowerBuilder
          • Kendo WinForms
          • Kendo Silverlight
      • Interactions
        • SendKeys
        • Validate
    • Selectors
      • Selectors in Code
      • Default Selector
      • Shared Selector
      • Selectors Category
        • CSS Selector
        • XPath Selector
        • Image Selector
        • Frame Selector
      • Identifying Selector
        • Identify for Windows Desktop
        • Identify for Web
  • How to Guides
    • Setting Up the Configuration
      • Parameters
      • Context
      • Loading External Data
    • Awaiting for the Application
      • Busy Loaders
      • Retries
    • Defining Controls
      • Extending Controls
      • Control Slice
      • Control Collection
    • Logging on Tests
      • QualityMate Reports
      • Logging
  • Help
    • Best Practices
      • Environment
      • Tests
      • Page Objects
      • Validations
      • Interactions
      • Image Comparisons
    • Known Issues
    • Continuous Integration
      • Agents Session
    • Upgrading QualityMate
      • From version 7 to version 8
      • Previous Versions
      • How to switch from TestFeature to UiTest
    • VS Test
      • Command Line
      • Generate Reports
  • API
    • Control Interfaces
      • IButton
      • ICheckBox
      • IComboBox
      • IControl
      • IControlSlice
      • IDateTimePicker
      • IElement
      • IGrid
      • IGroupBox
      • ILabel
      • IListBox
      • IMenu
      • INumericUpDown
      • IPageObject
      • IProgressBar
      • IRadioButton
      • IRadioButtonGroup
      • ISplitButton
      • IStatusStrip
      • ITab
      • ITextBox
      • IToggleButton
      • IToolBar
      • ITreeView
    • Behavior
      • ICheckableControl
      • IList
      • ITextControl
    • Enums
      • ClickType
      • KeyModifiers
      • MouseButton
  • Changelog
    • Changelog
      • Version 8
      • Version 7
      • Version 6
      • Version 5
      • Version 4
      • Version 3
Powered by GitBook
On this page
  • Building your extensions project using Visual studio
  • Set up a new project
  • Creating a new control interface
  • Implementing a new control
  • Loading a custom extension

Was this helpful?

  1. How to Guides
  2. Defining Controls

Extending Controls

PreviousDefining ControlsNextControl Slice

Last updated 3 years ago

Was this helpful?

QualityMate offers an architecture to extend and personalize the current controls interface functionality or even create a new brand control by defining a new interface.

This feature is for high experienced users with knowledge in UI components and the QualityMate framework.

Building your extensions project using Visual studio

Set up a new project

The first step is to create a dedicate .DLL project by selecting the menu item File -> Add -> New project -> Visual C# -> Class library. Then select a name ending with the pattern .ControlExtensions and its directory.

The assembly name needs to end with .ControlExtensions and needs to have the same output folder as QualityMate. In this way, the extensions DLL will load correctly.

Creating a new control interface

To create a new control, its important to create an interface that will inherit the QualityMate interface IControl.

The following is an example of a control interface.

public interface IADODataControl : IControl
{
    // Moves to the next row of this control.
    void Next();

    // Moves to the previous row of this control.
    void Previous();
}

Implementing a new control

QualityMate uses metadata attributes to identify the implementation based on the defined CustomTechnology and control interface.

The following is an example of how to export the required information:

// Export the created interface
[Export(typeof(IMyControlInterface))] 
// Export a technology to bind.
[ControlMetadata("MyExportedTechnology")] 
public class DesktopAdoDataControl : Control, IADODataControl
  • New controls should inherit from the Control class as it contains the core functionality of control interactions.

Loading a custom extension

Interface methods implementation should use Control's ExecuteInteraction method to handle .

To load customized controls, you need to specify the exported technology name.

implicit retries
Creating a new project for the control extension
user configuration