Form Field Locators

@data-id attribute shortened in some cases.

Current Version

//input[@type='text' and @data-id='fullname_compositionLinkControl_firstname.fieldControl-text-box-text']

//select[@data-id='header_leadsourcecode.fieldControl-option-set-select']

Wave 2

//input[@type='text' and @data-id='firstname.fieldControl-text-box-text']

//select[@data-id='leadsourcecode.fieldControl-option-set-select']

Common part in @data-id values makes It possible to adjust locators in a way to work with both versions of Dynamics 365:

//input[@type='text' and contains(@data-id,'firstname.fieldControl-text-box-text')]

//select[contains(@data-id,'leadsourcecode.fieldControl-option-set-select')]

Grid

Wave 2 introduces new implementation for the grid that displays table data. To address this change we created a fix release  - Rapise v7.0.23.35. Please contact support team to request this version.  Support for the new grid will be included into coming release of Rapise v7.1.

Find new grid reference here:

https://rapisedoc.inflectra.com/Libraries/DomDynamicsCrmAgGrid/

Old and new grids have identical actions and properties, so to update an existing test you just need to relearn grid objects. No need to change script steps.

Though Wave 2 is using new grid you may still have your tests  working with both versions of Dynamics 365. To achieve this goal complete a few steps.

Step 1

Assign two locators to a grid object.

For example, we have LeadsGrid object. We've got it after re-learn on Wave 2.

We clone the existing locator and assign old XPATH to it.

Clone option is accessible via context menu

Step 2

Add function to User.js that will assign correct object type to grids (depending on CRM version) . You may define g_wave2 variable in your test or pass from SpiraTest.

function ConfigureGridType()
{
    if (typeof(g_wave2) == "undefined")
    {
        g_wave2 = false;
    }
    var _gridType = g_wave2 ? "DomDynamicsCrmAgGrid" : "DomDynamicsCrmUnifiedInterfaceGrid";

    for(var objId in saved_script_objects)
    {
        var obj = saved_script_objects[objId];
        if (obj.object_type == "DomDynamicsCrmAgGrid" || obj.object_type == "DomDynamicsCrmUnifiedInterfaceGrid")
        {
            obj.object_type = _gridType;
        }
    }
}

Step 3

Call  this function in TestInit or at the beginning of RVL script.

Breaking Changes

Wave 2 also has breaking changes - some buttons and fields disappeared,, some were redesigned.  So be prepared to change logic of tests in some cases.

Example 1

We've noticed Refresh button is no longer present on some tables.

Example 2

Some forms changed from full to quick mode.

Current Version

Wave 2