UtilityFree

Appian Selenium API

by Appian Corporation

Description

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

Features

The Appian Selenium API plug-in supports both Chrome and Firefox browsers.

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.

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

See the Appian Playbook for more information: https://community.appian.com/b/appmarket/posts/appian_2d00_selenium_2d00_api

Release notes

IMPORTANT UPDATE: The Appian Selenium API is now available as an open-source repository! The repository can be found on Gitlab under "appian-oss/appian-selenium-api": https://gitlab.com/appian-oss/appian-selenium-api/

Users of the libraries will find a few key benefits from this change:

  • Ability to contribute to the libraries
  • Immediate access to bug fixes and new functionality
  • Improved communication between other users and library maintainers by leveraging Gitlab issues.

Updates to the framework will be immediately available in the open source package registry. Users are encouraged to leverage this instead of the App Market as we do not plan to update the App Market listing for every patch.

Version history (34)

25.1

v25.1

  • Enhancements
  • Added support for defining and using custom locales
  • Use create appian locale | PATH TO File. This method must be called AFTER setting the version!
  • File must be JSON file with the format
  • { "dateFormats": [ { "label": "dateFormat", "value": <FORMAT_STRING> }, { "label": "dateDisplayFormat", "value": <FORMAT_STRING> }, { "label": "timeFormat", "value": <FORMAT_STRING> }, { "label": "timeDisplayFormat", "value": <FORMAT_STRING> }, { "label": "datetimeFormat", "value": <FORMAT_STRING> }, { "label": "datetimeDisplayFormat","value": <FORMAT_STRING> } ], "labels": [ { "label": "acceptButton", "value": "Accept" } ], "locale": <LOCALE_CODE> }
  • Bug Fixes
  • Fixed clickOnRecordRelatedAction to function correctly when the Record Summary page contains more than three action items.

24.4

v24.3

  • None

24.3

v24.3

  • Enhancements
  • Added built-in retry to click operation in case of element not interactable exception
  • Updated the milestone locator

24.2

v24.2

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

24.1.1

v24.1.1

  • Bug Fixes
  • Reverted change to cards that changed indexes to certain elements

24.1.1

v24.1.1

  • Bug Fixes
  • Reverted change to cards that changed indexes to certain elements

v24.1

  • 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

24.1

v24.1

  • 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

23.4.1

v23.4.1

  • Bug Fixes
  • Backport support for Date Range user filter

23.4

v23.4

  • Project updated to require Java 11 JRE
  • Bug Fixes
  • Honor the download directory given in custom.properties for RemoteDrivers
  • Update dropdowns for versions greater than 23.3 to ignore the aria-checked value
  • Fixed Populate Record Type Date Range User Filter method
  • Enhancements
  • Add support for the Side navigation menu in sites
  • Add support for downloading charts
  • Add support for buttons configured with custom colors

23.3

v23.3.1

  • Bug Fixes
  • Update checkboxes to support CARD style for 23.3 and later Appian versions

23.3

v23.3

  • Enhancements
  • Supports Appian version 23.3
  • Added functionality to interact with new site group headers
  • Updated to Selenium 4.11.0

23.3

v23.3

  • Enhancements
  • Supports Appian version 23.3
  • Added functionality to interact with new site group headers
  • Updated to Selenium 4.11.0

23.2.1

v23.2.1

  • Bug Fixes
  • Update pickers to recognize selections with links (e.g. Record Pickers)

23.2

  • Enhancements
  • Supports Appian version 23.2

23.1.2

  • Bug Fixes
  • Fixes an issue in FitNesse where VerifyText did not work on a multi-node component
  • Fixes an issue where Dropdowns with Search were not working

23.1.1

  • Enhancements
  • Removed bundled browser drivers
  • Correct version will automatically be downloaded at runtime
  • Specific versions can be downloaded from https://sites.google.com/chromium.org/driver/downloads or https://github.com/mozilla/geckodriver/releases
  • Added support for Selenium 4.8.2 which solves https://github.com/SeleniumHQ/selenium/issues/11750

23.1

  • Enhancements
  • Supports Appian version 23.1
  • Updated locator for Dropdown class
  • Bug Fixes
  • Update CVEs
  • Update scripts (start.bat, start-mac.sh, start-unix.sh, runFitNesseTest.sh) to reference the new fitnesse-20221219-standalone.jar

22.4

  • Update Chromedriver to v107
  • Add support Appian 22.4

22.3.1

  • Update Chromedriver to v104
  • Bug Fixes
  • Fix TempoRecordTypeUserFilter's clear method to work for newer versions of Chrome

22.3

  • Enhancements
  • Supports Appian version 22.3 (Remove support for 20.3)

22.2.1

Fix usages of deprecated WebDriverWait constructor

22.2

  • Enhancements
  • Supports Appian version 22.2
  • Bug Fixes
  • Fix GridContents failures related to HTML updates in 22.2

22.1.2

Added index based selection support to click on button function.

22.1.1

Adds support for Selenium 4

22.1

v22.1

  • Enhancements
  • Supports Appian version 22.1

21.4.4

Address Log4J CVE: Update Log4J to version 2.17.1

21.4.3

v21.4.3

  • Bug Fixes
  • Address Log4J CVE: Update Log4J to version 2.17.0

v21.4.2

  • Bug Fixes
  • Address Log4J CVE: Update Log4J to version 2.16.0
  • Fix getGridContents when header cells do not have accessibility class

21.4.2

v21.4.2

  • Bug Fixes
  • Address Log4J CVE: Update Log4J to version 2.16.0
  • Fix getGridContents when header cells do not have accessibility class

21.4

  • Enhancements
  • Support new card choice components
  • Bug Fixes
  • Update CVEs

21.3

  • Bug Fixes
  • Fix bug for radio button card
  • Fix bug for date picker

21.2

  • Enhancements
  • Support new SectionLayout
  • Upgrade Selenium Server to 3.141.59
  • Bug Fixes
  • Fix bug for radio button card
  • Fix bug for icon link alt text

21.1

Fix some bugs due to XPATH changes

20.4

Updating library to 20.4

  • Enhancements
  • Support Chrome capabilities
  • Update FitNesse version to 20200501 and Cucumber to 6.8.2
  • Support Stamp Field
  • Support Tag field
  • Support signature field
  • Support record action field
  • Bug Fixes
  • Fix grid row count bug when there is no paging
  • Fix getGridColumnRowValue when the grid cell is a button
  • Fix clear picker bug when there are multiple selections
  • Fix capturing an empty rich text field

fitnesse-for-appian-19.4.1

Updating library to 20.3