Rapise Desktop

Articles
AiTester Public Page Object

Rapise 8.3 introduces AI-powered capabilities for executing test cases. To leverage this feature, integrate the AiTester public page object into your framework. With AiTester, you can send text and image-augmented queries to AI models hosted by  OpenAI, Azure OpenAI, and Amazon Bedrock. Example applications include generating data, performing image-based verifications (e.g., detecting discrepancies or counting visual elements), and more.

Importing Manual Test Cases from Spira to Rapise

If you have manual tests saved in Spira and want to automate some of them, you can import these tests into a Rapise Framework. From there, you can automate the steps using the record-and-edit features or leverage AI tools for automation.

Using Appium Windows Driver with Rapise

If you need to migrate your existing Windows UI tests built for Appium Windows Driver to Rapise, here is how you can do it. Requires Rapise 8.3+.

Integration with ExtentReports

ExtentReports is a popular logger-style reporting library for automated tests. Since Rapise 8.2 there is a simple way of using it for custom reporting.

Generating OTP Passwords

Many applications require users to enter one-time passwords to login. In this article we describe how to implement OTP generator in Rapise.

Running Rapise GUI Tests with Jenkins (April 2024 version)

The recommended approach is to use SpiraTest and RapiseLauncher for automated test execution. However, in some cases, this may not be an option. This article describes how to run Rapise tests using Jenkins.

How to generate an HTML report using own template and convert it to PDF

Rapise can export an execution report in HTML format, it even allows to choose from a few predefined templates. However you may want to create own template or customize existing one and export the report automatically at the end of test execution. Also you may want to convert generated HTML report to PDF format. Learn how from this article. 

Rapise 8.0: how to use Rapise with Git and Spira

If your team has only one or two test automation engineers, the best option for storing files of a testing framework is within SpiraTest. This approach is straightforward to implement and does not require specific configuration of test sets. However, if your testing framework is expected to grow significantly and you have multiple automation engineers, it is recommended to incorporate Git into your set of tools. Using Git offers several important benefits:

Improved file loading speed: By integrating Git with RapiseLauncher, the process of loading files from a repository is significantly faster. This can save valuable time, especially when dealing with larger frameworks or complex test suites.

Comprehensive source control features: Git provides a wide range of source control capabilities, including branching and merging. These features are essential for managing changes and collaborating effectively when multiple team members are working on the same codebase. It allows for better organization, tracking, and merging of code changes, ensuring a streamlined development process.

Enhanced teamwork: Git simplifies collaboration in a team environment. It allows team members to work on different branches or even different features concurrently, while providing mechanisms to merge and synchronize their work seamlessly. This enables better coordination and reduces the risk of conflicts when integrating changes made by multiple developers.

By incorporating Git into your testing workflow, you can optimize file loading speed, leverage powerful source control features, and foster a more efficient and collaborative team environment.

Rapise 8.0: how to use Page Objects/Modules

When writing automated tests, it is often necessary to create shared modules that can be used by multiple test cases. These modules serve various purposes, such as handling authentication for applications with a login page, performing necessary actions after test case completion, or working with custom controls within the application, such as dropdown menus, form fields, or grid/table controls.

In Rapise 8.0, you have the ability to address all these requirements. Rapise supports two types of modules: RVL (Rapise Visual Language) and JavaScript-based modules. These modules provide a flexible and powerful approach to handle common functionalities across your test cases.

By using RVL modules, you can visually create reusable components that encapsulate specific actions or sequences of steps. For example, you can create an RVL module that handles the authentication process by entering credentials and clicking the login button. This module can then be easily reused across multiple test cases that require login functionality.

Alternatively, you can leverage JavaScript-based modules in Rapise 8.0. JavaScript is a versatile programming language that allows you to create custom functions and logic to handle complex scenarios. With JavaScript-based modules, you can implement specific interactions with custom controls or perform actions that are not easily achievable through the visual interface of Rapise.

Both RVL and JavaScript-based modules in Rapise provide a seamless way to organize and reuse common functionalities within your automated tests. They help improve maintainability, reduce duplication of code, and enhance overall test efficiency.

Rapise 8.0: using multiselect and datacolumn parameters for comprehensive testing

The true strength of test automation lies in its capability to execute the same test cases with varying input parameters. In Rapise 8.0, you can achieve this by utilizing multiselect and datacolumn parameters. Let's now explore a specific example to illustrate this concept.

Rapise 8.0: development flow for Test Automation Framework in Team Mode

When working as part of a team of automation engineers, the principles mentioned in the Single User Mode still apply. However, there are additional considerations to keep in mind, particularly when using a SpiraTest-based file repository.

Rapise 8.0: development flow for Test Automation Framework in Single User Mode

If you are the sole automation engineer working on test creation with Rapise, it is recommended to follow these basic principles when developing a test automation framework. These guidelines specifically apply to the new Framework mode introduced in Rapise 8.0.

Rapise 8.0: how to make a copy of a test automation framework

There are various situations where duplicating a test automation framework and linking it with another product in SpiraTest becomes necessary. For instance, you may want to create a copy to test the next major version of your application or start fresh with a clean product in SpiraTest. Another common scenario is when you need to transfer the test repository from SpiraTest to Git.

Rapise 8.0: how to define and use test set configurations

Rapise 8.0 provides the simplified way of parameterizing test sets . With the ability to define parameters and create configurations, managing different test scenarios has never been easier. Each configuration automatically includes all the defined parameters, but you can override specific parameter values as needed. If a configuration does not explicitly assign a parameter value, the default value is utilized during test set execution.

Rapise 8.0: what are the benefits of using the new Framework mode?

The Framework mode was introduced in Rapise 8.0 to simplify test case and test set management, as well as the management of parameters, page objects/modules, object repositories, and shared code. The legacy Single Test mode required dealing with Sub-Tests and linking tests to SpiraTest on a per test case basis, whereas in the Framework mode, there is a single button labeled Sync with Spira that handles everything. When this button is pressed, test cases and test sets are automatically synchronized with SpiraTest, and files are uploaded/downloaded.

In the Framework mode, team collaboration is streamlined because changes made by team members are automatically merged. In addition, it is possible to view diffs and resolve conflicts in complex cases.

Rapise 8.0: how to define and use parameters in test cases

In test automation projects, it is often necessary to parameterize test cases for various purposes. For instance, this could involve specifying different URLs for running tests in different environments (development, staging, production), or providing user credentials for logging into the system. Additionally, there might be a need to quickly modify playback speed, error handling, and screenshot settings for multiple test cases. In the Rapise 8.0 Framework mode, managing parameters is made simple and convenient, allowing easy creation and management of parameters, including the ability to run the same test case with different input data, such as filling a form with various values to create multiple records in a system database.

Rapise 8.0: recommended way of executing code before and after each test case

Rapise 8.0 has introduced a new  feature called the Framework mode.  In  this mode a new framework is created with the Common.js file which contains event handlers such as SeSOnTestInit and SeSOnTestFinish that get executed for every test case.

Dynamically Clicking on a Desktop App Button Sample (MS-Word)

We had a customer request for a sample that demonstrates how to click on buttons in a desktop application (in this case a plugin for Microsoft Word) where instead of having to learn each of the buttons individually, you can learn the button container and then loop through the buttons using a Rapise RVL Map.

How to find Rapise activation code that is used on a machine

In your Customer Area on Inflectra website you have a list of Rapise activation codes. To find out which code is used on a specific machine follow these simple steps. 

How to disable browser notifications for Selenium Chrome

Some of the Web resources used for automated tests have a browser's push notifications active.
However, push notifications creating unnecessary records in RVL table.

How to attach a file to a test run in Spira

By default Rapise uploads all the screenshots to a test run in Spira but you may need to upload a specific file, e.g. text file or a spreadhseet.

Running Rapise test sets without third-party tools

Recommended way of running Rapise tests on regular basis is using SpiraTest and RapiseLauncher. Other options include Azure DevOps and Jenkins. But there is also a way of running Rapise tests via command line. If this is what you are looking for then read this article.

Create an incident in Spira from Rapise test

In some cases a test may automatically determine that it's failure is definitely caused by a bug in software under test.  In this case the test may create an incident in Spira using Spira.CreateIncident action. Requires Rapise 7.2+.

What Blocked status means for a Test Run

When you run a test with Spira (via RapiseLauncher) you may get a `Blocked` status for a test run. It is displayed in the Test Runs view and Test Sets view both in Spira and Spira Dashboard in Rapise.

Auto start/stop Azure VM to run UI tests

If you are using a Microsoft Azure VM to run UI tests  and do not want to keep the VM always running (to save budget) you may configure automatic start/stop and auto logon for the machine.

Change the default Screenshot folder

If a test is configured to capture screenshots during playback - Rapise puts then into Reports folder in the working directory of the test. If you want to copy screenshots to a different location or instruct Rapise to put images into a different folder - check out this article.

RVL Toolbox to boost productivity in writing tests

If you are new to Rapise or use it occasionally you may not know or remember all the cool objects and actions to use in your tests. With RVL Toolbox you can get access to required information by searching for it without leaving the RVL Editor.

How to get AWS Secret from Rapise

Learn how to query AWS Secret from Rapise.

 

Requires Rapise 6.7+

Rapise and Microsoft Defender Antivirus

If you use Microsoft Defender Antivirus to protect your system then you may need to perform certain steps to use Rapise effectively.

Rapise and Avast Antivirus

If you use Avast Antivirus to protect your system then you may need to perform certain steps to install and use Rapise.

Advanced search for elements in desktop applications

If a desktop application is dynamic and recorded locators do not work then there is a way to search for elements using UIAObject.DoFindElementByCondition and UIAObject.DoFindElementsByCondition.
Requires Rapise 6.6+

Making Negative API Tests

By default Rapise reports an error when REST service request fails. With the negative test the request should fail, so we want the reporting to behave differently.

How to rename a Rapise test linked to a Spira Test Case

It is a 3 step process:

1. SaveAs or Clone the test with a new name

2. Save it to Spira

3. Delete old test copy from Documents module in Spira (optional)

Recording Web and Desktop actions into the same test

Starting from Rapise 6.5 you may record both Web and Desktop actions into the same test.

Values passed from RapiseLauncher to Rapise

When a test is executed by RapiseLauncher it may access key properties of the test run,  custom test set properties and test case parameters.

Requires Rapise 6.4.19.16+

Unified Service Desk with Chrome for Hosted Controls

If you want to use Unified Service Desk with Chrome and test it with Rapise you need to configure it properly.

Make screenshots on failure only

Automatic screenshots on every test step may occupy too much space. Learn how to make  a screenshot on failure only.

Using Zoom/GoToMeeting for Support Session

Learn how to connect to a support session and how to enable Rapise Expert to remotely control your Rapise instance.

Windows Calculator

For Rapise training purposes we may need a simple desktop application that can be executed on any Windows version. What can be simpler than Windows Calculator?

Compare Images in JavaScript

To compare images in JavaScript you may use Tester.AssertImage.

UIAutomation2 Locator

Rapise 6.3 includes an experimental feature - new UIAutomation2 locator for UIAutomation based desktop testing. Rather than specifying a path from the element tree root to the element this locator relies on built-in ability of UIAutomation to search for elements based on property values.

Automatic learning of objects in a Java application

If you prefer writing test steps manually in JavaScript then it might be helpful to automatically learn all child objects of a Java application to make them available for scripting.

How to Enable JRE Accessibility Only for Tests

By default Rapise is using Java Accessibility Bridge by changing some Java Runtime Environment (JRE)-wide configuration files. So all applications using same JRE will use the modified version. If your goal is to have Accessibility only for test runs, then there is another way of doing that.

Rapise and Citrix/RDP

We are getting a lot of questions on how to use Rapise with Citrix and remotely accessed VMs . Here is the answer.

Inspecting custom UI control with UI Automation Spy

UI Automation is a default technology for testing desktop applications on Windows. If your application is not .NET or Java then  Rapise will turn on UI Automation library during recording. If some elements in your application are not recognized or there are issues with playback of recorded steps then most likely your application is using custom UI controls. You may inspect those controls and send information to Rapise support team to get recommendations on how to proceed with testing.

How to run a PowerShell script in Rapise test

To run a PowerShell script use Global.DoLaunch action.

Using Rapise with Java Web Start Applications

Rapise supports testing of Java applications. In the case that application is launched using Java Web Start (JWS) additional steps are needed to successfully test an application.

How to deal with custom UI Automation controls

This article is for those who test a desktop application via  UI Automation library.  Since desktop applications are frequently built using UI controls from different vendors  and the number of such controls available on the market is pretty big (> 1k)  - Rapise may not have out-of-the-box support for some controls in your application.  For such cases Rapise offers a low level API to navigate UI Automation tree of elements inside an application and read/write element properties. In this tutorial we'll show how to use this API and quickly add minimal support for a custom control.

How to start Rapise Launcher on Windows Boot

Windows may reboot because of various reasons. If you use a machine to run Rapise tests on regular basis than you want RapiseLauncher to be started automatically after system reboot.

How to organize custom code in User.js

Every test has a User.js file and it is a place to put custom code and functions. This code must follow a few rules.

Working Directory of a Test and Relative Paths

When Rapise starts execution of a test, it sets working directory. If a test refers to a file using a relative path then the absolute path is calculated using the working directory.

How to get title of a window

In this short topic we describe how to get the value of a window title. The way depends on the application type.

Closing application under test from Rapise

There are different techniques one can use to close the application being tested from Rapise. The method to choose may depend on the application type.

Writing data to an Excel spreadsheet

In this article we describe how to write data to an external Excel spreadsheet during test playback. Both RVL and JavaScript examples are given.

Multiple Object Locators

Sometimes object location is unstable. The same object may be identified by different location path or XPath depending on application version or state.

How to deal with dynamic window titles

Desktop applications may use window titles to show important information to a user. In some cases the title contains subject of a displayed entity or time.  Since Rapise uses window title while searching for an object during playback - the search may fail. This complication may be resolved if you replace recorded windows title with a regular expression.

How to relearn an object

If an object can not be found at playback and it is obvious that object location has changed because of application update (differs from the case when location is dynamic!) then the best way to fix the test is simply relearn the object.

How to master a dynamic locator with RVL

There are situations when object location attribute  depends on the object data and it is not possible to record/learn all such objects in advance.  In this case it may be convenient to calculate object location at playback time using FormatString and SetLocatorOpts actions of the RVL global object.

How to save type information for UI control in Rapise Spy

Rapise supports many standard UI controls out-of-the-box. And there are even more custom UI controls that are not supported. This is why Rapise has a well-defined way of adding extensions.  To add support for a custom control first it makes sense to Spy on it. If you are dealing with Managed or Java applications you can Save Type Information for the control and also save UI tree structure/properties to a file.  Send this information to Rapise team to get an advice on how to add support for the new control.

WPF Calendar and DatePicker

It is tricky do deal with WPF calendar control. Here we introduce a number of supplementary functions to copy in your project and use to modify and read  Calendar and DatePicker data.

How to ensure that a Fast Tab is expanded and scrolled into view in Dynamics AX

Many views in Dynamics AX have several collapsible panes: General, Addresses, Contact information, etc. They are also known as Fast Tabs.  Learn how to ensure that a Fast Tab is expanded and scrolled into view before entering data into the fields in this tab.

Requires Rapise 5.7+

If recording of actions in Dynamics AX or Dynamics NAV does not work

More and more computers are equipped with High DPI displays. Though high resolution looks beautiful it may bring some issues. One of them is broken recording in Rapise.

Rapise Start Page Layout Does Not Display Correctly

Sometimes when you first install and open Rapise, the Start Page does not display correctly. This article explains the cause and solution to fix the issue.

DoClick() vs DoClick(x,y)

When doing mouse click from Rapise it is sometimes need to use offset coordinates. You will learn:

1. When explicit coordinates are needed

2. How to determine them

Display Intellisense for ActiveX and .NET Objects

Sometimes when you are using Rapise, you have to use external ActiveX or .NET objects to perform specific actions. You can get Rapise to display intellisense for those objects.

How to insert an RVL step into Manual Test

Sometimes it makes sense to automate certain steps of a Manual Test. If you prefer to implement automatic steps in RVL then include the AUTO  helper function into your test.

RPA - importing data into Dynamics AX

If anything can be automated - it will be automated. You can use Rapise to automate day-to-day processes within a company to free your employees for more creative and productive job. Imagine you have data from third-party system in Excel file and you want to import it into Dynamics AX instance. You have a choice either to develop a software program that does the import via Dynamics AX API or you can create an automation script in Rapise.

How to find an object in the object tree

A test may contain a lot of objects. If you want to locate an object in the object tree you may use the filter box.

What is object Location?

When you record a test Rapise captures UI elements with which you interact and adds them as objects to the Object Tree of a test. Each object has a Type (Button, Text, Label, Tree, Grid, ...) and Location. Rapise uses Location attribute of an object to find it in the application during test execution.

How to check that Rapise can find an object on screen

When you execute a recorded test, sometimes, Rapise may not find some object on screen and display Object is not found error message in the report. If you see that the object is visible you can check if Rapise can find it or not without running the test.

RPA - importing data into Dynamics NAV

If anything can be automated - it will be automated. You can use Rapise to automate day-to-day processes within a company to free your employees for more creative and productive job. Imagine you have data from third-party system in Excel file and you want to import it into Dynamics NAV instance. You have a choice either to develop a software program that does the import via Dynamics NAV API or you can create an automation script in Rapise.

How to save content of a table/grid into a spreadsheet file

If you need to make a copy of data in a Table/Grid object - you may simply save it to Excel file with a single function call.

How to ensure that a Fast Tab is expanded and scrolled into view in Dynamics NAV

Many views in Dynamics NAV have several collapsible panes: General, Lines, Invoice Details, etc. They are also known as Fast Tabs.  Learn how to ensure that a Fast Tab is expanded and scrolled into view before entering data into the fields in this tab.

Requires Rapise 5.7+

How to automate testing of Unified Service Desk for Microsoft Dynamics 365

Unified Service Desk (USD) is a hybrid application. It is a windows desktop application with embedded browser components. Follow this guide to setup a test automation framework for USD.

Data-driven testing with spreadsheets and RVL

Many test automation scenarios require performing same steps with different data. For example, login into application with different user credentials, or enter several lines of a sales order into a table. This is data-driven testing. From this article you will learn how to do this in Rapise Visual Language (RVL) and JavaScript modes.  You will also learn how to define data within a test and in external spreadsheet.

Rapise Doesn't Launch Because of Missing Windows Fonts

If you don't have some of the standard Window fonts installed (e.g. Courier New), when you try and launch Rapise, it will fail to open correctly. This article provides information on the problem and solution.

Converting Recorded Steps into Functions/Scenarios

You have recorded some basic test scripts in Rapise, and now you want to easily extract the steps into a reusable function that can be called from the main test script. This article explains how you can do this for both RVL and JavaScript based tests.

Where does Rapise log errors?

Sometimes when you are using Rapise, you see an error on the screen, or something doesn't work as expected. In that case, our support team will need a copy of the log file that is likely to contain the error message. This article explains how to get that log file.

Ways to deal with flaky tests

When you do UI test automation and create a big enough test coverage the probability of having certain portion of flaky tests increases. In many cases there is no reasonable way in terms of time and resources to mitigate all flakiness from the test coverage. In some cases even a flaky test may still be useful.

How to Check if Rapise Can Test My Delphi Application

In order for Rapise to be able to test a thick-client desktop application written using Delphi, it needs to support Microsoft Active Accessibility (MSAA), as described in this article - http://edn.embarcadero.com/article/33642

This article demonstrates how to check your application to see if it supports MSAA.

Troubleshooting the "The Pipe is being Closed" Error during Rapise Installation

Sometimes when you try and install Rapise, you will see the error message "The Pipe is Being Closed", this article provides some solutions for this message.

How to start Dynamics NAV client

Check that Dynamics NAV client is installed on a machine and launch it if it is not started yet with this simple function.

How to Check if Rapise can Test my Qt Application

In order for Rapise to be able to test a thick-client desktop application written using Qt, it needs to support Microsoft Active Accessibility (MSAA), as described in this article - http://doc.qt.io/qt-5/accessible-qwidget.html

This article demonstrates how to check your application to see if it supports MSAA.

How Object Recognition Works in Rapise

This article contains of overview of object recognition by UI automation tools in general and its implementation in Rapise in particular.

Rapise Tips, Tricks & Workarounds when Testing Dynamics AX 2012

During the evaluation of Rapise 5.2 for Microsoft Dynamics AX testing, a customer collected the following tips and tricks from our support team (thanks Maxime!).

Microsoft Dynamics Solutions - Which One Do You Have?

As described in a recent article, Microsoft Dynamics has been going through major changes in the past year, there are now many different products that all bear the 'Microsoft Dynamics' brand, including older legacy tools such as Dynamics AX, NAV, GP, SL and CRM and the new Dynamics 365 platform which has different modules (Sales, Operations, etc.).  This article helps you know which tool you have when you need help from our Rapise support team.

Different Ways of Slowing Down Rapise to Handle Slow Applications

We often get requests for ways to slow down the playback speed of Rapise so that the application under test (AUT) has time to respond. This article describes the different ways and provides suggestions as to when you should use each one.

Resources for Learning JavaScript

One of the most popular programming languages in the world is JavaScript. Initially conceived by Netscape as a web page scripting language, christened JavaScript to leverage the popularity of Java (which was fairly new and sexy at the time) and now used for servers (NodeJS), desktop apps (ReactNative) and for us at Inflectra, the core technology at the heart of our Rapise test automation system. This article provides some useful resources for those first learning the language.

Suppressing Text in Rapise Logs for Sensitive Data

A customer had a question - is there a way to suppress the DoSetText or DoSendkeys methods from sending their text to the logs. They didn't want users to see this text in the Rapise (and SpiraTest) logs because they contained sensitive information (e.g.  passwords).

Adobe Flash / Flex / AIR Support in Rapise

Rapise 4.0 supports the testing of Adobe AIR Flex applications using the Adobe Integrated Runtime (AIR). Rapise can test applications using a wide variety of different Flex controls and supports testing both Flex 3 and Flex 4 applications.

Rapise 4.0 supports the testing of Adobe Flex applications that are executed by the Adobe Flash Player inside the Internet Explorer, Mozilla Firefox or Google Chrome web browsers. Rapise can test applications using a wide variety of different Flex controls and supports testing both Flex 3 and Flex 4 applications.

[We have depreciated support for testing Adobe Flex/Flash applications in Rapise 5.0 and later, so this article is provided for use by existing customers]

Troubleshooting Java Swing/AWT Testing

When you are testing a Java application using either Swing or AWT you may run into some issues due to the environment. This article collects some of these common cases and provides the recommended solutions.

Where do I get the Microsoft Script Debugger
When you install Rapise onto a computer that does not have Visual Studio or the Microsoft Script Debugger installed you will get a message to install the debugger. This article provides the download link to the necessary debugger.
Rapise - Cannot Find AllLibraries.json file during Recording/Playback

When recording or playing back a test script on a new PC you may get an error message that Rapise cannot find the path to "AllLibraries.json".This article provides instructions on how to fix the issue.

Working with WPF and UIAutomation Structures

It is a common situation that desktop applications written using Microsoft Windows Presentation Framework (WPF) will have complex layouts including tabs, splitters and panels having custom grids and tables inside. This article provides help in dealing with such situations, including how to dynamically find items.

Reading the Details of Files on the Windows File System

In the KB62 article - Accessing Files using Rapise we explain how to access the names, versions and locations of files on the Windows file system. One customer asked - can we verify any file details other than version. This article provides sample code for accessing other information.

Note: if you have Rapise 5.5+ then you may simply use File.Info action.

Accessing the Windows Registry using Rapise

Sometimes when testing local/desktop applications you need to access the Windows registry to verify that keys exist or that keys have specific values. For example you may be testing that a DLL was successfully registered. This article provides information on the 'UsingRegistry' sample that comes with Rapise.

Error attaching to Excel spreadsheet when using Rapise 4.0 with MS-Excel 64-bit
When you are using the global Rapise Spreadsheet object on a system running the 64-bit version of MS-Office, you may get an error attaching to the spreadsheet. This article describes the cause of the issue and provides a solution and workaround.
Testing MS-Word With Rapise

We had some customers that were looking to record some tests against Microsoft Word 2010. When testing against MS-Word 2010 there are actually two parts to the application:

  • There is the application ribbon (the menus, navigation, etc.)
  • There is the MS-Word text window where your content is actually displayed

This article provides some strategies for dealing with both areas.

Using Global.DoLoadObjects to Use Rapise Objects from External File

One of the challenges using an automated testing tool is to organize things in a way that it is logical enough to find something quickly, structured enough to avoid duplication and simple enough to maintain and upgrade.

This statement is also true for Rapise objects. A common requirement is to deal with the same objects within a flow of different test cases. For instance, if an application has “Log In” functionality then many, many tests will require logging-in and logging-out. Each test will have this object in its own object tree. However this causes trouble if a change in the application affects the recognition of the Log In object. All of the test cases will need to be updated. In such situations it is much more convenient to have the “Log In” objects placed into their own file and re-used by other tests.

This article is obsolete. In Rapise 8.0 and above the recommended approach is to use Page Objects / Modules.

Global.DoWaitFor vs Global.DoWaitForProperty

The most commonly used synchronization option to make Rapise wait until the application under test (AUT) is ready is the Global.DoSleep action. However having just a sleep may cause an unnecessary delay because we have to consider the maximum wait interval and it may be much less on average. Rapise includes some additional synchronization options for more fine grained control of the test case flow.

What is the purpose of the Tester.EndTest() Function?

The Tester.EndTest() function in Rapise is described as: Marks end of a currently executed test. Calculates test results and performs finalization of test execution. We have found that some of our customers have been confused as what the purpose of this function is.

Desktop Application Testing - Choosing the Right Library

Suppose we have a situation that a thick-client (desktop) application under test (AUT) is based on a technology that is too old or not completely supported by Rapise. Rapise has a number of libraries for different types of apps. Usually Rapise finds the correct libraries using its auto-detection, but sometimes an application is unusual and the auto-detection fails.

Using Rapise to populate data in an Excel Spreadsheet
The built-in Spreadsheet object in Rapise makes it easy to read data from an MS-Excel spreadsheet. What happens if you want to write data back to the Excel sheet?
Customizing the Rapise Reports

By default, the reports displayed within Rapise report back each test activity and assert statement as a line in the report with all of the activities and events being displayed in a single flat list regardless of whether they happen inside the main Test() function or a sub-function. This articles explains how you can extend the reporting.

Calling Rapise DoX functions without reporting result

When you use a DoX command in Rapise to perform a specific command (e.g. DoDOMChildrenCount() to get a number of object's DOM children), in the report an extra step -- assert -- is created during test execution. Sometimes you want to be able to call a function 'quietly' without it affecting the report.

Scripts created with Rapise 2.1 or earlier no longer playing back correctly in Rapise 2.2 or later

In Rapise 2.2, "DoClick" behavior was changed, so we don't do a click but rather just position the mouse over the control and do API-level "click" event. However we provided a way to enable backward compatibility.

This article is obsolete.

Disabling the generation of comments during Recording

By default Rapise records user actions with a line commented out for each action. This articles describes how you can disable this behavior if you just want the script lines recorded on their own.

Anti-Virus Software and Test Automation

Anti-virus software is very sensitive to test automation tools. This is normal, because test automation tools usually do API, keyboard and mouse hooking to be able to record and playback user actions.

Why is My Flex application recorded as mouse clicks?

A Flex application requires some instrumentation to be ready for testing. By default Flash player has security restrictions preventing Rapise from accessing the application contents. Please, check the this help topic to learn more about Adobe Flex testing.

This article is obsolete. Flex support was removed from Rapise.                

Reading an Object's State

Sometimes it is necessary to examine the state of an object. For example, determine if Toggle Button is pressed or not, Radio/Check Button is checked or not, etc. This guide describes a couple of different ways of achieving this.

Choosing Object Type Manually

Sometimes Rapise will incorrectly recognize a GUI component. This guide outlines how you can manually change the object type captured during recording.

Working with Right-Click Context Menus

The context menu control is not natively supported by Rapise, but one can use a simple workaround.

Working with Selectable Lists

The behavior of list and combobox controls in GUI applications sometimes require additional attention. This guide explains the different types of combobox controls and best practices for testing them in Rapise.

My Actions are Not Recorded

By design Rapise tries to record user activity on the highest possible level. This makes recorded actions more readable and universal. However that sometimes means that certain actions that a user performs won't be automatically picked up. This guide explains ways to handle situations when a specific user activity is not recorded.

Recording Mouse Activity

This guide describes the different types of mouse events and how they are recorded in Rapise.

Change Object Value or Text
This guide describes the different ways that you can change the value of text label of an object.
Analog Recording

Sometimes the application under test doesn't contain any learnable objects. In that case you may need to use the fallback of Analog Recording. This guide describes how you perform analog recording.

Simulated Objects

This guide describes what simulated objects are and when they should be used.

How does Rapise detect if a dialog is already open?

There are several ways to find if something is already on the screen, this article explains some of the options.

Analog Testing when the Machine does not have the Break Key

When using Rapise for analog testing you need to use the key sequence CTRL+BREAK to start and stop the analog recorder. However some machines (particularly smaller laptops) do not have a BREAK or PAUSE (often the same function as BREAK) key. This article describes some solutions

Adding Support for Custom Flex Controls

By default the Rapise Flex library supports a wide variety of Flex controls which will be capable of testing the majority of application. However sometimes there will be an unknown objects which will be learnt as a generic object with FlexObject flavor. The article describes support for such custom Flex controls.

This article is obsolete. Flex support was removed from Rapise since Flex is dead already for a long time.

Accessing Clipboard in Rapise

Sometimes when automating a test, you need to access the local Windows clipboard. This article describes how to access the Windows clipboard programmatically.

Testing Win32 applications to verify that controls change display state

Sometimes you may have a button (or other control) that  can have a different appearance depending on the different focus statuses.
 
For example, the default status without focus is a grey image, whereas when the mouse hovering over it becomes blue. Then when the mouse left button is held down on the button (and not released), the image changes to a red image.
 
Finally, when the button is activated using the tab key to tab into the button and the mouse is somewhere else, it has a fourth color.

This article discusses solutions for how to test these kinds of situationю

Getting the State of a Win32 object using Rapise

Sometimes you need to be able to test the state of a specific Win32 object in Rapise to see if it is enabled, disabled, is activated, etc. This sample illustrates how to get the numeric and textual value of the object's state.

Using Simulated Objects

Simulated objects are found by looking at the parameters of the object (x number of pixels from the top of the window, y number of pixels from the left of the window, etc).  One common question that has arisen is - during playback, does Rapise take into account screen resolution?  If the resolution on the computer you run it on is different from the one it records on the location of the object will change relative to the number of pixels.  So on the computer you record it on the top parameter might be 200 but on a different resolution it might be 180.  Would Rapise recognize that the resolution is different and adjust for that?

Accessing Child Objects in a Java AWT/Swing application

This article describes how to access child objects of a Learned Java AWT/Swing object when using the Rapise Java library. Sometimes when you Learn a top-level object, you want to be able to programmatically query the object to locate the child objects that are visible in the Java Spy.

Accessing child components of a WPF / Silverlight ListBox

When you have a WPF or Silverlight application that has a list box (or other control that supports templates such as a Tree) that has an item template that contains sub-controls, you may need to access the individual controls rather than just the entire list item. This article outlines the approach for doing this.

Dynamically changing object locators for WPF/Silverlight applications

Sometimes you will have controls in a WPF or Silverlight application which use dynamic lists. Depending on certain settings, the widgets in the list will appear in different places. This means that a learned Rapise object which works fine if its in the original ListBox[0] location position is not found during playback when it's displayed in another position, e.g.  ListBox[1] or [2].

Unlike the XPath option with web testing, Rapise doesn't currently allow regular expressions (Regex) in locators stored inside the Objects.js file. This article describes a way around the problem.

This article is obsolete. Rapise supports regular expressions in UIAutomation locators since version 6. Read this article for more details.

Executing a process and checking if it's still running

If you use the Global.DoLaunch(...) command to launch a Windows console application, it will return a process ID. This article provides some sample code for executing a console application and checking to make sure that the process is not still running.

How to handle Windows/Objects that have names that change

When using Rapise to record test scripts against Windows, Java, Flex, or other thick client applications that have windows or objects whose names may change in between test runs, you will usually need to make changes to either the test script or the learned objects so that they can match correctly. This article outlines some suggested techniques for recording/playing back scripts against such applications.

Recording Infragistics Applications with Rapise Throws Error

If you try and record a test script in Rapise using just the 'Infragistics' library you will get the following error message:

C:\Program Files (x86)\Inflectra\Rapise\Engine\Recorder.js(285, 3) Microsoft JScript runtime error: 'ManagedObjectSelectableBehavior_OnMouseEvent' is undefined