Appian Selenium API

Overview

The library contains methods which allow you to interact with Appian components in a browser. It can be used in a Java application or integrated directly into any Selenium or Java-based testing tool.

Appian Selenium API contains the methods that are at the core of both Cucumber for Appian and FitNesse for Appian. If you are familiar with either Appian’s FitNesse or Cucumber tools then you are already familiar with the methods provided by the Appian Selenium API. For example, the table below shows the corresponding FitNesse and Cucumber methods for the same underlying Appian Selenium API method.

Appian Selenium API

loginWithUsernameAndPassword(jString userName, String password)

FitNesse for Appian

| login with username | USERNAME | and password | PASSWORD |

Cucumber for Appian

Given I login with username "USERNAME" and password "PASSWORD"

Note: Java 11 required for plugin version 23.4

Key Features & Functionality

The Appian Selenium API plug-in package includes:

  • The Appian Selenium API jar
  • Javadocs
  • An example of how to use the API in a Java application
  • An example of how to use the API in a Cucumber test 

The Appian Selenium API plug-in supports both Chrome and Firefox browsers. See the Appian Playbook for more information: Automated Testing with Appian Selenium API

Note on Appian Versions:

With each Appian release, a new version of the plug-in is also released to support the latest Appian components. This plug-in is backwards compatible, ensuring that you do not need to update your test cases when upgrading to new Appian versions.

Anonymous
  • Im having issues setting this up, i followed the guide but the dependencies in the build.gradle file are not being recognised, how do i fix this?

  • I found an issue with the 'populateRecordTypeUserFilterWith' method. It’s supposed to select an option from a record filter dropdown based on the provided value, but it’s picking options that only partially match.
    For example, if you have "Admin", "Administrator", and "Admin User" as options in a filter, and you pass "Admin", it might select "Administrator" instead of the exact match "Admin". This makes it impossible to select the correct option when names are similar.
    This problem may be happening with other populate dropdown methods.
    Is there a workaround for this that Im not aware of?

  • v23.3.0 Release Notes
    • Enhancements
    • Added built-in retry to click operation in case of element not interactable exception
    • Updated the milestone locator
  • v24.2.0 Release Notes
    • Enhancements
    • Update locator for site menu links
    • Created method which supports clicking on text within an interface.
    • This is particularly useful for nested cards such as tab layouts, but can also be used as a fallback when existing methods do not work.
    • This method is available for all Appian versions.
    • Click operation on Card layout will be performed on the left side of the element instead of the right. We are not expecting any impact on existing test cases.
  • Appian support team, Our team using Appian version of 22.4 and all our Automation scripts are working with Appian Selenium API v23.1 

    Currently we have upgraded the platform to 24.1. all the automation scripts are failing
    We have downloaded Appian Selenium API release V24.1 as well and still we are facing scripts failure
    Please let us know if we need to upgrade Java version / JVM or any other supporting version to be added to the jar file. 
  • v24.1.1 Release Notes
    • Bug Fixes
    • Reverted change to cards that changed indexes to certain elements

  • v24.1.1 Release Notes
    • Bug Fixes
    • Reverted change to cards that changed indexes to certain elements

  • v24.1 Release Notes
    • Enhancements
    • Supports Appian version 24.1
    • Adds support for collapsing/opening sidebars
    • ClickOnCard updated to support clicking on cards with complex content. For example, the method can now click on cards that has a component nested in multiple layouts within the card

  • some of the Appian feature not covered predefine method , so this time we are forced to customize some script in both Appian selenium and API as well 
    ex  

    dr.findelement(locatortype(locator)).click()

    Thanks