Rapise Web

Articles
Enable Camera Access for Chrome and Edge

Some web applications interact with camera. Each time browser requests camera access browser shows the prompt that blocks the page. Here we show how to bypass this prompt.

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.

ChromeDriver update: onbeforeunload is not fired any more since 126.0.6465.0

Since version 126.0.6465.0 ChromeDriver behaves according to W3C standard. Specifically:

Whenever active sessions is a list containing exactly one item, and that item is a HTTP session, but is not a BiDi session, then in the steps to fire beforeunload, implementations must act as if showing an unload prompt is likely to be annoying, deceptive, or pointless. This means that beforeunload prompts are never shown when there's an active HTTP-only session.

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.

How to use two different browser instances in one test

Sometimes, an automation scenario may require performing steps in two separate browser sessions that don't share cookies and cache. In this article, we'll describe how to manage multiple browsers within the same test script and switch between them.

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.

Testing mobile applications built with Ionic framework

Ionic is an open source UI toolkit for building performant, high-quality mobile apps using web technologies — HTML, CSS, and JavaScript. This means that being mobile, Ionic applications are web applications by nature. And it is much more convenient to test them via WebDriver rather than Appium. Requires Rapise 8.1+.

Chrome for Testing

This is the mirror of  https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json

Using links from this JSON file you may download specific versions of Chrome that do not auto-update.

How to run a sub-test in isolated mode

Sometimes there is a need to execute another test (sub-test) from a Rapise test. Doing so with Global.DoInvokeTest or RVL.DoPlayTest will run the sub-test in the context of the calling test, it will reuse same browser profile or mobile profile, it will use same loaded libraries. Such mode of execution may produce different results compared with running the sub-test standalone. To run the sub-test in isolated mode use Global.DoInvokeTestParallel and RVL.DoPlayTestParallel.

How to automate testing of Flutter Web applications

In most cases Flutter Web applications are built with CanvasKit renderer (flutter build web --web-renderer canvaskit). It means that by default UI elements of an application are not visible to test automation tools. They see just the big pane that covers all browser window. So does Rapise. However, there is a simple workaround that can be applied to solve this problem. 

If you have Rapise version lower than 8.0.28.45 and Chrome 115+

Since version 115 of Chrome the central storage of chromedriver executables has changed. If you have Rapise version older than 8.0.28.45 than you need to take special steps to continue testing on Chrome 115 and above.

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 run test cases on different browsers

In this article, we will demonstrate how to configure multi-browser execution of test cases in Rapise to ensure compatibility of a web application across major web browsers. This method is specifically designed for the Framework mode, which was introduced in Rapise 8.0.

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.

Run Rapise tests on Bitbar

Bitbar is a browser and device farm that enables it's clients to run cross-browser and mobile tests remotely.

How to switch from `Chrome HTML` to `Selenium - Chrome` browser profile

Chrome extension and Chrome HTML browser profile have been deprecated. Chrome extension and Chrome HTML browser profile have been deprecated. The reason is that Google is going to remove MV2 extensions from the store . At Inflectra we decided not to migrate to MV3 extension format because it is unlikely possible due to security changes (primary reason of appearance of MV3). To make Chrome based testing possible we implemented Selenium Based Recorder . So please consider switching to Selenium - Chrome browser profile.

How to load Chrome browser extensions via Selenium profile

If you need specific browser extensions for running web tests you may specify them in Selenium profile.

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 set permanent user profile for Selenium - Chrome/Edge profile

When you are recording/running a test via Selenium browser profiles in Rapise - by default a new user profile is created when new instance of a browser is launched. It means that new browser instance starts with empty cache, no cookies, etc. Sometimes it complicates testing. If you are testing a Web application that requires SMS/Email code to authorize a browser then you will have to do it every time. Automation of  input of SMS/Email codes may be really hard. It is much easier to authorize a browser manually once and then run tests for long period of time. To make it work you will need to configure a permanent user profile for the browser used for testing. Learn how to do it for Chrome/Edge from this article.

How to set download folder for Selenium - Chrome profile

If your Web testing scenario includes file downloading you may configure `Selenium - Chrome` profile and specify which folder to use to store downloaded files. 

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 wait for Web element to disappear from screen

Rapise has built-in function Navigator.DoWaitFor to wait for object to appear. If you need to do the opposite add the following function into your User.js.

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.

Scripting Drag&Drop for Web Tests

This function is useful for scripting DragNDrop for web tests.

Run Selenium - Chrome in full screen

If you want your tests to run in maximized browser you need to configure the browser profile properly.

How to work with Shadow DOM via Native Selenium API in Rapise

If your scripting is style is writing JavaScript and using Native Selenium API and you wish to dig inside Shadow DOM - read this short article. Requires Rapise 7.3+

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.

Dismiss Safari popup on a Mobile device

If you are running a web test on a mobile device via Appium then you have three options of how to accept a popup window alert.

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+.

Comparing Web Page to Text or Word File

Sometimes you need to validate the whole page text. This sample demonstrates usage of plain text or MSWord file for this purpose with some help of myers-diff npm module

Reading DOM element style property

Sometimes we need to get runtime property for the element. For example, we need to get a background color to know that element is visually highlighted for a user. This topic shows how it may be done with Navigator.ExecJS.

Get DOM element visible color

Sometimes we need to get runtime property for the element. For example, we need to get a background color to know that element is highlighted for a user. You may do it with help of Navigator.ExecJs.

Get DOM element visible color

Sometimes we need to get runtime property for the element. For example, we need to get a background color to know that element is highlighted for a user. You may do it with help of Navigator.ExecJs.

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.

The 2021 release wave 2 for Dynamics 365 for Sales

The 2021 release wave 2 for Dynamics 365 contains hundreds of new features across Dynamics 365 applications. If you are using Rapise to test a Dynamics 365 for Sales instance you may be affected by the coming changes. To help you update existing tests we summarized differences (important for UI automation) between old and new versions of Dynamics 365 for Sales.

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+

How to run cross-browser tests on AWS Device Farm

Learn how to configure Rapise to run cross-browser tests on AWS Device Farm.

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.

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)

RapiseChromeExtension version 3

Along with Rapise 6.5 we are releasing an update to the RapiseChromeExtension.  The new version (v3) is back compatible. It means that older versions of Rapise should work with it without issues. Rapise 6.5+ will require you to update the extension if you have RapiseChromeExtension v2.

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.

Basic authentication in Web tests

Legacy Web applications still may use basic authentication. So when you navigate to an application URL the browser shows a dialog with Username and Password fields to enter.  The content of this dialog is not a Web content so recording and playback in a Web test will not work.

Searching for a Web element by text that contains non-breaking spaces

Are you writing XPath to find an element using its inner text but it does not work? Most likely the text contains non-breaking spaces.

This situation is described in detail in our UI Test Automation Playground.

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+

Automating TinyMCE 2020

The world moves forward and  our older KB articles related to TinyMCE became outdated. In this article we present a modern way (as of year 2020) of automating TinyMCE controls.

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.

How to set path for local browser and mobile profiles

Since version 6.3 Rapise has support for local browser and mobile profiles. Using it you may package browser profiles along with tests. What if you want to reuse browser profiles between different projects? Or have sets of profiles for different situations? You may now set path to profile directory using a special global variable.  Supported in Rapise 6.4+

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.

How to disable recording URLs

When you do recording of test steps for a Web application - Rapise by default captures page URLs and stores them in the object repository. Learn how to  disable URL recording from this article.

Requires Rapise 6.4+

Compare Images in JavaScript

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

How to define and use a dynamic Web locator

Imaging you have a table with dynamic data on the page. It is not possible to learn every cell. But it is possible to parameterize the locator of a cell and access cells you need during test playback.

Accessing svg elements via XPath or CSS

By default straight forward XPath to SVG primitives will not work.  So XPath ending like .../svg[2]/path will fail. Here is a workaround.

How to set size of a browser window

To ensure that web tests always run on a browser window of a specific size you may use different techniques.

Headless Firefox Testing

Firefox 56+ supports headless mode on Windows.  You can use it to Run Rapise tests via Selenium integration.

How to get contents of the HEAD element in a DOM

In this article we will get contents of the HEAD element to get the links to all referenced stylesheets. It may be useful if you plan to verify that a set of CSS did not change for a page.

How to Get All Links on the Page with Rapise

Sometimes you need to go through all links to check something. Here are two ways: JS and RVL of doing it with Rapise.

How to run a PowerShell script in Rapise test

To run a PowerShell script use Global.DoLaunch action.

How to check if web element is really visible on screen

Checking if element is visible on screen may be a tricky task. It's usually not a problem in manual testing but there are nuances when you do test automation.

How to check if a web dropdown element has specific option or not

If a test needs to verify existence or absence of a specific option in a dropdown you can do it via a simple function presented below.

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 create a Rapise web object from XPath

In some cases it may be convenient to construct Rapise Objects dynamically rather than capture in advance with record/learn. In Web tests you can do it via Navigator.Find and Navigator.SeSFind.

Getting browser console logs

In some cases it may be useful to analyze browser-side logs. For example, if you are using Navigator.ExecJS action.

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.

Handling Toast Messages

The toast message is like an alert box that is only shown for a couple of seconds when something happens (i.e. when the user clicks on a button, submits a form, etc.). This article describes how to deal with toast messages in Rapise.

How to Send Special Keys to Selenium Targets

Sometimes you need to press Tab, Return, Backspace to the web page. Here is how you may do it through WebDriver.

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 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 save/load DOM tree in Web Spy

Better to see something once than to hear about it a thousand times. If a Web element can not be found on the page using given XPATH expression and you do not know why - you have an option to save the DOM tree of the page and ask someone else with Rapise for assistance. Here is how.

Firefox 64 Compatibility

Once you have your Firefox updated to version 64 Rapise may have problems connecting to it. Here is a quick workaround until new release of Rapise addressing the problem shows up.

How to manipulate browser cookies using Selenium API in Rapise

If you run Rapise tests via Selenium WeDriver you may need to manipulate browser cookies. Learn how from this post.

How to emulate keyboard and mouse via Selenium API in Rapise

Though Rapise can execute it's native recorded tests via WebDriver - some users prefer to write their tests in pure Selenium API. In this post we describe how to perform complex mouse and keyboard sequences via Selenium API in Rapise tests.

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 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.

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 web element is visible before interacting with it?

Sometimes an element on a web page may be invisible because it is out of a viewport.  Real user scrolls a page vertically and horizontally to reach such an element. How to achieve same behavior with Rapise?

How to define a profile for Web Application in Rapise

Each web application is unique in terms of assigning attributes to elements and this complicates the process of generating XPath locators. Some applications assign dynamic IDs to elements, some use ARIA attributes and some do not, some values of class attribute have meaning related to element position and some just used for styling . There are also cases when an app contains hidden DOM layers which stack on top of each other. So usage of same set of attributes for generating XPath is not efficient and may lead to weak locators that break after application reloading or slight modification. To cope with these problems Rapise introduces Web App Profile. It is a simple JSON file of a defined structure that instructs Rapise how to build XPath for elements in a particular application. From this article you will learn how to define a profile for your web application.

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.

Text Validation Does Not Always Fire on Angular4 Application

Sometimes when you are testing an application written in Angular 4, the text box will not accept a value that is correct during playback (e.g. zip code is not in the right format) when you use DoSetText to set the value.

How to Install the Chrome and Firefox Extensions Offline

By default,  when you want to use Rapise to record and playback web tests using either Chrome or Firefox, you simply go to the appropriate web browser "store" and install the extension directly from the store. However sometimes you are testing web applications on a machine with no Internet Connectivity.

How to disable "Chrome is being controlled by automated test software" message

When you run a test with Selenium - Chrome profile the browser is launched with a warning message below the address bar. It can be disabled.

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.

How to automatically enter user credentials into Windows Security dialog on Windows 10

Some test scenarios require running processes as different user or entering user credentials into Internet Explorer security prompt.  Rapise can enter user credentials into Windows Security dialog on Windows 10 automatically.

Recording tips for Dynamics NAV 2017 Web Client and Dynamics 365 Business Central

Dynamics 365 Business Central is a successor of Dynamics NAV 2017 Web Client. Both solutions were built by Microsoft using same technology though they have a few differences. Rapise includes a library DomDynamicsNAV which makes test recording and playback of Dynamics NAV web clients a pleasant thing. From this post you will learn basics of recording a reliable test for these solutions as well as test playback troubleshooting methods. We'll use Dynamics 365 Business Central as system under test.

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 launch a browser in private mode?

In some cases it makes sense to launch a browser in private mode to ensure exact same conditions every time you run a test.  This helps to cope with such things as remembered accounts or pending sessions not disconnected by a previous test.  Learn how to properly adjust browser profiles from this article.

Installing Rapise Browser Extensions without Internet Access

Normally you can install the add-ons for Chrome and Firefox directly from the browser's app store (just search for Rapise). This is the easiest option, and avoids the need to run the browsers in developer mode.

How to launch a web browser in Rapise with a specific size

Sometimes when recording a test against a mobile responsive web site, it is useful to be able to record on the local browser (before playing it back against a cloud service such as SauceLabs, Browserstack, etc.). However you want to always record using a specific browser window size.

How to run cross-browser tests on BrowserStack

BrowserStack enables testing of your website for cross browser compatibility on real browsers. Instant access to multiple desktop and mobile browsers.  Learn how to configure Selenium  profiles in Rapise to enable connection to BrowserStack services.

Requires Rapise 5.3+

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.

Testing Visualforce components in Salesforce

Visualforce is the component-based user interface framework for the Force.com platform. Visualforce components can be tested with Rapise just like default Salesforce interface.

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.

Search by Name, Text, XPath or Attribute on the Web Page

It is common task to search for an element by its text. In some cases it is the fastest way to find one. This approach works in web browsers and selenium targets.

Elastic XPATH Expressions

When working on UI test automation for a web application a test engineer has to deal with XPATH expressions. They are used to locate UI elements during test execution. It is very important to use such XPATH expressions that do not break when developers update the application. Good XPATH expressions which still find required elements after UI modification can be referred to as resilient or elastic.

In this article we'll consider several examples of elastic XPATH expressions.

 

How to specify Selenium or Appium capabilities which are not available through Rapise UI?

From this article you will learn how to pass additional parameters to Selenium or Appium target, even if they can not be specified in a profile.  This recipe can be also used to override parameters of a profile right from a test code.

Requires Rapise 5.3+

How to run cross-browser and mobile tests on Sauce Labs?

Sauce Labs allows users to run tests in the cloud on different combinations of browser and OS versions as well as mobile devices and emulators. Learn how to configure Selenium and Mobile profiles in Rapise to enable connection to Sauce Labs services.

Requires Rapise 5.3+

How to run a cross-browser test on a mobile device?

Let's assume you have a cross-browser test which was created on desktop and can be successfully executed on any desktop browser (Chrome, Firefox, Internet Explorer, Safari). You want to execute this test on your mobile devices or emulators. Learn how from this article.

Requires Rapise 5.3+

Tips & Tricks for Rapise and Dynamics 365 for Sales

Essential information to get started with testing Dynamics 365 for Sales.

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.

Headless Chrome Testing

Headless Chrome on Windows  is introduced in version 60 . Learn how to configure Rapise to run cross-browser tests using non-GUI mode of Chrome.

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).

Rapise Tip - How to Handle a Webpage that Displays an Alert when You Navigate Away

One of our users had a webpage with a form. When it was submitted partially filled, the page came back (after being processed on the backend) with some errors about incomplete form. If the user tried to navigate away from this page via a link (or close the page/browser tab) he was prompted with browser's standard "Are you sure you want to leave this page?" dialog. He needed a way for Rapise to handle this popup when recording and playing back the web test.

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]

Unusual case where Rapise Cannot Click on Hyperlinks in IE
We have found an occasional situation where Rapise is not able to click on hyperlinks (<A> tags) when you playback a test on IE. The same test works fine on other computers and on other browsers on the same computer.
Web Object Not Found in IE when Object has 0px Size

We had a customer with a problem related to having <div> elements with complex display styles applied inside an HTML anchor tag <a>. The anchor tag was reporting back as having zero size (0px) in IE, so when Rapise tried to locate it to click on it, the browser was not able to find it.

Testing Popup Windows using Internet Explorer

When you are testing a web application that has popup windows (where the popup is a whole new browser window) you will need to make a slight change to the test script to enable it to playback successfully in Internet Explorer (no change is needed for Chrome or Firefox).

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.
What to do When Rapise Doesn't Display the Web Page DOM?

Sometimes when testing certain web applications instead of the browser DOM tree appearing you will see strange results such as "Node0" appearing. This is caused by the application using nested frames with potentially different security origins. This article describes some of the common issues and describes the solution.

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.

Testing Multiple Web Browser Tabs at Once in Chrome

Sometimes you have a web test where you need to test the contents of two browser tabs at the same time in Google Chrome. For example you may have an application which opens up a second browser tab and you want to test that changes in the second tab show up correctly in the first tab. This article describes how to perform this kind of testing.

Testing Web Applications that use SVG

One of the more challenging types of web application is that with uses of embedded SVG (Scalable Vector Graphics) in additional to HTML DOM elements. This article describes how to use Rapise to write automated testing scripts for such applications.

Rapise 3.x / 4.0 Does not Connect to Chrome x64 Bit

When you try and connect to the 64-bit version of the Google Chrome web browser using Rapise 4.0 (or earlier) you may get the error 'Connection to Chrome Failed!'. This issue has been fixed in the Rapise 4.1 release, but for those customers using Rapise 4.0 or earlier, this article provides two solutions.

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.
When recording with Chrome, Rapise does not record actions within frames
When creating web tests with Chrome, objects within cross-frames are not recognized by the Rapise Web Spy and recorder. This article gives a solution.
Using Rapise to test websites that contain frames

If the website under test contains frames, that presents some challenges to test automation. This article gives tips for success and explains the current limitations.

This article is obsolete. Please use Selenium-based profiles for Web testing. Read about Rapise XPath extensions here.

Different XPath Options in Rapise 4.0

When testing complex data-driven web applications using Rapise, it is helpful to understand the different ways that Rapise can automatically learn the objects. Rapise can learn an object using either XPATH or CSS. In the case of XPATH there are several strategies that Rapise can use to make the testing more robust. This article describes these strategies and provides some suggestions about which one is the best to use for different scenarios.

WebSpy Attribute Filtering

The v4.0 release of Rapise adds enhanced attribute filtering to the Web Spy as well as different options for creating XPath queries automatically. This article explains why you would want to use these features and how they can make the testing of complex data-driven web applications much easier.

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.

Using CheckObjectExists(xpathOrObjId) to See if Web Object Exists on Page

This articles describes how you can use the Navigator.CheckObjectExists(...) action to see if an element exists on a web page and how it differs from the Global.DoWaitFor / DoWaitForProperty actions that are described in another article.

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.

How to automate the testing of TinyMCE Rich Text Boxes using Rapise

DEPRECATED
Method described in this article does not work any more because browser security has changed since 2015. Now it is not possible to directly access client side JavaScript model. We have a new article that explains how to automate TinyMCE

https://www.inflectra.com/Support/KnowledgeBase/KB541.aspx

 

When you have a rich text box in a web application, the process for recording a test and playing it back will be different to a standard HTML plain text box. When you are using the popular TinyMCE rich text box you have more options to automate it by using its special client-side JavaScript API.

Dynamically constructing the .rest file URLs to test REST APIs

Sometimes when using Rapise to test REST web services, you want to be able to dynamically change the base URL of the web service yet still use the same URL template and method information. This article describes a process for achieving this.

Web testing - Dynamically Switching the Browser in the Same Test

Sometimes you have a test that you want to run on Chrome, Firefox, and IE in the same script. Normally you write a browser-agnostic test and then have SpiraTest simply call Rapise with different browser names as a parameter and then you have the same test executed multiple times. However suppose you want to have a single test that by itself can run on all the necessary browsers. This article addresses this case.

Measuring browser performance with Rapise

How do you get the exact time that Rapise takes to load a page? Now, the reports summary shows the overall execution time but if you have pause times between steps then these times are added to the total time of that a page took to display. Customers have asked if Rapise has some kind of function that will allow them to see only the transaction time between pages without the pause times. Does Rapise have something like that? This article provides a solution to these cases.

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?
Dynamically changing object locators for Web applications

Sometimes you want to dynamically change the XPATH or CSS used in a specific object from within the test script itself. This article explains the process for doing this.

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.

Using Rapise 3.1 to test a web page with a multi-select list

When you have a multi-select list in a web application, you may need to check which items are selected, or to check whether or not a particular item is selected. This article illustrates how to do that.

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.

Accessing the Computed Style Properties of an HTML DOM Object
A common question from our users is, is there a way to get object's style properties that are in effect at a certain point in time. (for example, it could have been inherited from higher level of hierarchy, or modified via JavaScript running on the page)? This article describes how to do this.
Certain Hyperlinks won't click during playback with Internet Explorer (IE)

Sometimes when you record a test script using IE and then play it back, some of the clicks on hyperlinks will not playback correctly. Rapise will list them as Passed, but the click won't actually be performed.

Rapise cannot connect to Firefox immediately after Firefox updates

If you try and connect to Firefox with Rapise immediately after Firefox has updated, you may see the following error message:

Microsoft JScript runtime error: 'Navigator.GetBrowserHWND()' is null or not an object

Accessing the Spira v4.2 REST API to get test cases in a release

This article describes the process and provides an example for accessing the Spira v4.2 REST API to get a filtered list of test cases in a release.

How to Use Sub-Tests and Common Objects with REST Web Service Tests

It is often useful to have a common set of code libraries and objects that can be reused amongst multiple tests. With Rapise this can be done by creating a common test and then including it into the other actual tests. However due to the way REST web service tests are stored, there are some slight changes needed to handle REST services. This articles describes the process.

Note: if you have Rapise 8.0+ there is a simpler way, just create a module for REST service calls.

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.

Testing Silverlight Applications

When testing Silverlight applications, you may find that Rapise fails to recognize the objects in the Silverlight app using the UIAutomation library. When using the Rapise Spy Tool, the  whole app is identified as a single window. The objects such as a dropdown, buttons etc. inside the silverlight app are not individually recognized.

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.

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.

Recording Web Menus

Many web sites have dynamic site menus. This guide outlines the best practices for recording events associated with such dynamic site menus.

Working with HTML XPath

When testing web applications you will often need to use XPath to query the browser DOM for elements based on the scenario under test. This guide explains how you can use XPath queries with Rapise to make your browser testing more flexible and adaptive to changes on the screen.

Working with HTML Tables containing Dynamic Data

Many web sites use HTML tables to display lists of tabular data. When testing such applications you will often need to dynamically search for items in the table to verify that the application under test performed correctly. This guide outlines best practices for accessing data held in HTML tables.

This article is obsolete. For dealing with dynamic table data please refer to How to define and use a dynamic Web locator article.

Using DoDOMChildrenCount and DoDOMQueryXPath to inspect child HTML elements

Often you want to be able to query for the child elements on a web page that are dynamically created and therefore not good candidates for LEARNing individually. This article explains how you can use the dynamic XPATH methods of Rapise to accomplish this task.

After installing Windows Update KB3025390 Rapise No Longer Connects to IE
An old (December 9th, 2014) security update for Microsoft Windows and Internet Explorer (KB3025390)  broke the support in IE for 'out-of-process' code execution. This effectively prevented an automated testing application such as Rapise from automating Internet Explorer (IE) applications. This was subsequently fixed by Microsoft on February 10th, 2015 with the KB 3021952 update.
Automating HTML File Upload Boxes

Sometimes you have to automate the uploading of files using an HTML file upload control. This article explains how to record and playback such a script.

Recording Popup JavaScript Confirmation Boxes

When you are recording a test against a Web application you may have to deal with a popup JavaScript confirm or alert box. This article describes the process for dealing with them.

How to automate the testing of Rich Text Boxes using Rapise

When you have a rich text box in a web application, the process for recording a test and playing it back will be different to a standard HTML plain text box. This is because the browser actually uses a separate IFRAME and HTML document for the editable rich text box. This article explains the process for recording/playing back such a test.

Choosing the Web Browser in Rapise from SpiraTest / SpiraTeam

When writing a web test in Rapise you will often want to run the same test script in all three web browsers (IE, Firefox and Chrome). You will want to be able to choose the Test Script from within Rapise when debugging the test and then from a Test Set in SpiraTest when you move the test into production. This article explains the process.

This article is obsolete. For modern way of running Rapise tests in multiple browsers please refer to Rapise 8.0: how to run test cases on different browsers.

Turning off Chrome and Firefox Auto-Updating

When you are testing a web application against different environments, it can be useful disable to default browser auto-updating policies so that you have a stable testing environment. This articles describes how to disable the auto-updating policies of Google Chrome and Firefox.

Using Navigator.ExecJS to execute JavaScript code inside a browser

Sometimes you need to execute JavaScript code at a browser side and get the result. You can do this with Navigator.ExecJS.

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 JavaScript commands against Web Browser

Sometimes you want to be able to open a browser window and execute JavaScript commands directly against the DOM objects rather than using the Rapise learned objects. This article explains the recommended way of doing this.

Selecting Browser for Test

This article describes how to playback a test in a different browser from the one it was recorded in.

Unable to record/play a Java applet using Rapise inside a web browser

Sometimes you have the situation where you can record/play a Java application using Rapise having correctly installed the Java bridge and set the JAVA_HOME environment variable correctly, but applets running inside a web browser do not work. This article provides some suggested solutions

How Do I Ensure No Other Browser Windows Open

When running a test you will often want to make sure there are no other browser windows open. This is commonly done either at the start or end of the test. This article describes how you do this.

This article is obsolete. With Selenium-based connectors (default option since Rapise 7.3) opened browser windows are longer an issue. One may continue to use regular browsers. Rapise will use isolated browser profiles to run tests. 

 

Test-Scripts suddenly moving/clicking at false locations

If you have your browser zoom set to a value that is not 100% when recording or playing back scripts it will affect the playback reliability. Specifically Rapise may click/move at/to false locations in the test browser. You need to set your browser zoom to 100% before doing any playback/recording activities.

How do I change the URL of the website being tested in Rapise.

We are in the process of adding a new testing server that we would like to be able to run automation scripts against.

 I just wanted to see if there is a process documented for converting scripts and objects to point to a different web address?