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.
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.
Windows may reboot because of various reasons. If you use a machine to run Rapise tests on regular basis than you want Rapise Launcher to be started automatically after system reboot.
The most reliable method that works with any Windows edition is to use Task Scheduler.
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.
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.
In some cases it may be useful to analyze browser-side logs. For example, if you are using Navigator.ExecJS action.
In this short topic we describe how to get the value of a window title. The way depends on the application type.
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.
Sometimes you need to press Tab, Return, Backspace to the web page. Here is how you may do it through WebDriver.
Sometimes object location is unstable. The same object may be identified by different location path or XPath depending on application version or state.
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.
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.
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.
If you run Rapise tests via Selenium WeDriver you may need to manipulate browser cookies. Learn how from this post.
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.
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.
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
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.
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.
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.
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.
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.
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?
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.
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.
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.
By default, when you want to use Rapise to record and playback web tests using either Chrome or Firerfox, 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.
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.
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.
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.
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.
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.
When you do UI test automation and create a big enough test coverage the probability of having curtain 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.
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.
Normally you can install the add-ons for Chrome and Firefox directly from the brower's app store (just search for Rapise). This is the easiest option, and avoids the need to run the browsers in developer mode.
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.
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+
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.
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.
This article contains of overview of object recognition by UI automation tools in general and its implementation in Rapise in particular.
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.
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.
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+
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+
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+
Essential information to get started with testing Dynamics 365 for Sales.
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 on Windows is introduced in version 60 . Learn how to configure Rapise to run cross-browser tests using non-GUI mode of Chrome. It works same way as with PhantomJS.
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.
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).
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.
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]
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.
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.
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).
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.
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.
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.
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.
One of the more challenging types of web application is that with uses embedded SVG (Scaleable Vector Graphics) in additional to HTML DOM elements. This article describes how to use Rapise to write automated testing scripts for such applications.
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.
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 creating web tests with Chrome, objects within cross-frames are not recognized by the Rapise Web Spy and recorder. This article gives a solution.
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.
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.
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.
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.
The most commonly used synchronization option to make Rapise wait until the application under test (AUT) is ready is the Global.DoSleep(milliseconds)function. 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.
This articles describes how you can use the Navigator.CheckObjectExists(...) function to see if a web page exists and how it differs from the Global.DoWaitFor / DoWaitForProperty functions that are described in another article.
The Tester.EndTest() function in Rapise is describes 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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Sometimes Rapise will incorrectly recognize a GUI component. This guide outlines how you can manually change the object type captured during recording.
Many web sites have dynamic site menus. This guide outlines the best practices for recording events associated with such dynamic site menus.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 location position is then played-back when it's displayed in another position, it will be ListBox or .
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 describes how to playback a test in a different browser from the one it was recorded in.
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
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.
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 will 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.
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?