Table of Contents

Ranorex API Reference

Welcome to the Ranorex API Reference documentation. This section provides comprehensive technical documentation for all Ranorex classes, methods, properties, and events.

Overview

The Ranorex API is a powerful automation framework that enables you to create robust, maintainable test automation solutions. The API is organized into several key namespaces and assemblies:

Quick Start

Essential Classes

Class Description Common Usage
Host Application host management Initialize/shutdown automation
Report Test reporting and logging Log test results and status
Validate Validation and assertions Verify application state
Element UI element representation Interact with application controls
Repository Object repository management Centralized element management

Common Operations

// Initialize Ranorex
Host.Initialize();

// Find and interact with elements
var button = Host.Local.FindSingle("//button[@text='Submit']");
button.Click();

// Validation
Validate.IsTrue(element.Visible, "Element should be visible");

// Reporting
Report.Success("Test Step", "Operation completed successfully");

// Cleanup
Host.Shutdown();

Key Concepts

Element Identification

Ranorex uses RanoreXPath expressions to identify UI elements:

  • Absolute paths: /form[@title='Login']/button[@text='Submit']
  • Relative paths: .//textbox[@class='username']
  • Wildcards: //button[contains(@text,'Save')]

Repository Pattern

Use repositories for maintainable element management:

var repo = MyAppRepository.Instance;
repo.LoginDialog.UsernameField.PressKeys("testuser");
repo.LoginDialog.PasswordField.PressKeys("password");
repo.LoginDialog.LoginButton.Click();

Error Handling

Implement robust error handling:

try
{
    var element = Host.Local.FindSingle(path, timeout);
    element.Click();
    Report.Success("Click", "Button clicked successfully");
}
catch (ElementNotFoundException ex)
{
    Report.Failure("Click", $"Element not found: {ex.Message}");
    throw;
}

Architecture Overview

Automation Stack

flowchart TD
    A[Your Test Code]
    B[Ranorex API Layer]
    C[Technology Plugins]
    D[Ranorex Core Engine]
    E[Operating System Layer]

    A --> B --> C --> D --> E

Plugin Architecture

Ranorex uses a plugin-based architecture where each technology has its own specialized plugin:

  • Web Plugin: Chrome, Firefox, Edge, Internet Explorer
  • Desktop Plugins: WinForms, WPF, Win32, Qt
  • Mobile Plugin: iOS (via Appium), Android (via Appium)
  • Enterprise Plugins: SAP, Java applications

API Categories

Core Automation

Namespace Purpose Key Classes
Ranorex Main automation functionality Host, Report, Validate
Ranorex.Core Core element and repository management Element, Repository, RanoreXPath
Ranorex.Core.Testing Test management and execution TestModule, TestCase, TestSuite

Technology-Specific

Plugin Target Applications Key Capabilities
Web Browsers, web apps DOM manipulation, JavaScript execution
WinForms .NET Windows Forms Native control support, property access
WPF WPF applications XAML element support, data binding
Mobile iOS/Android apps Touch gestures, device interaction

Utilities and Extensions

Area Classes Purpose
Data Handling DataConnector, DataSource External data integration
Image Recognition ImageFinder, Template Visual element identification
Timing Delay, Timeout Wait and timing operations
Validation Validator, CompareValidator Custom validation logic

Getting Started Guides

For Beginners

  1. Basic Setup - Configure your development environment
  2. First Script - Create your first automation
  3. Element Identification - Learn RanoreXPath basics

For Developers

  1. API Usage Examples - Practical code examples
  2. Advanced Patterns - Enterprise-level automation
  3. Best Practices - Proven automation patterns

Advanced Topics

Custom Extensions

Extend Ranorex functionality:

public static class ElementExtensions
{
    public static void SafeClick(this Element element, int retries = 3)
    {
        for (int i = 0; i < retries; i++)
        {
            try
            {
                element.Click();
                return;
            }
            catch (ElementNotFoundException)
            {
                if (i == retries - 1) throw;
                Delay.Milliseconds(500);
            }
        }
    }
}

Performance Optimization

  • Element Caching: Reuse found elements when possible
  • Timeout Tuning: Optimize search timeouts for your application
  • Parallel Execution: Run independent tests concurrently
  • Resource Management: Properly dispose of resources

Integration Patterns

  • CI/CD Integration: Azure DevOps, Jenkins, GitHub Actions
  • Data-Driven Testing: Database, Excel, CSV integration
  • Custom Reporting: External reporting systems
  • Test Management: Integration with test management tools

API Reference Navigation

Ranorex

Classes


Ranorex.Core

Classes


Ranorex.Core.Data

Classes


Ranorex.Core.Remoting

Classes


Ranorex.Core.Remoting.Data

Classes


Ranorex.Core.Reporting

Classes


Ranorex.Core.Repository

Classes


Ranorex.Core.Testing

Classes


Ranorex.Core.Testing.Interfaces

Classes


Ranorex.Core.Tracing

Classes


Ranorex.Core.WinApi

Classes


Ranorex.Plugin

Classes


Ranorex.Plugin.CustomControls.PosListBox

Classes

Ranorex.Plugin.Oracle

Classes


By Assembly

  • Browse by assembly to understand the overall structure
  • Each assembly contains related functionality
  • Start with Ranorex.Core for fundamental concepts

By Namespace

  • Logical grouping of related classes
  • Follows .NET naming conventions
  • Use IntelliSense in your IDE for discovery

By Class Type

  • Classes: Main functionality containers
  • Interfaces: Contracts and extension points
  • Enumerations: Configuration options and constants
  • Delegates: Event handling and callbacks

Support and Resources

Documentation

Community

Technical Support

  • Professional Support: Enterprise-level assistance
  • Consulting Services: Custom automation solutions
  • Training Programs: On-site and remote training

Ready to start automating? Begin with the Getting Started Guide or dive into practical examples to see the API in action.