Overview
Test your Appian application within minutes with methods created specifically to operate within Appian applications and Tempo!
Common test case scenarios can be created for reusability throughout test suites. A CheatSheet.feature file that lists out all the supported methods and how to invoke them using the @Given, @When, @Then, @But, @And, and other Cucumber-supported annotation.
Key Features & Functionality
With Cucumber for Appian:
I am unable to access the underlying WebDriver instance from Appian fixtures (TempoFixture/SitesFixture) to perform custom JavaScript operations, which limits the ability to handle complex UI interactions that aren't covered by the standard Appian Selenium API methods.
Framework Limitations: Cannot leverage Selenium's full JavaScript execution capabilities while maintaining Appian session consistency
Environment:
Appian Selenium API Version: 25.1 Selenium Version: 4.1.2 Test Framework: Cucumber with JUnit Browser: Chrome (latest) What I was Trying to Achieve:
// Goal: Execute custom JavaScript while maintaining Appian session WebDriver driver = extractFromAppianFixture(); JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; jsExecutor.executeScript("arguments[0].click();", submitButton);
// This fails - WebDriver extraction returns null SitesFixture sitesFixture = fixtureManager.getSitesFixture(); WebDriver driver = extractWebDriverFromObject(sitesFixture); // Returns null
Error Message:
RuntimeException: Could not extract WebDriver from either fixture
What I have Tried Reflection-based extraction from TempoFixture and SitesFixture - unsuccessful Public method access (getWebDriver()) - method doesn't exist Field-level access using various field names (driver, webDriver, seleniumDriver) - no accessible fields found
Specific Use Cases Where This is Needed Custom Button Interactions: Buttons with complex CSS classes that standard clickOnButton() cannot locate Rich Text Editor Manipulation: TinyMCE editors requiring direct JavaScript interaction Dynamic Content Handling: Elements that appear/disappear based on JavaScript events Custom Validation: JavaScript-based form validation that needs to be triggered programmatically
Will appreciate if any guidance or roadmap information regarding WebDriver accessibility in the Appian Selenium API framework. Or if there is any existing library that can help to achieve this without any customization
Can we add our custom page classes and our own step definitions along with this framework, if so please guide on how to add the same. Thanks
too bad! I was using this one D:
Hello, There is no method mentioned in the cheatsheet which supports clicking on text within an interface. Only Verify text on interface is mentioned in the cheatsheet. Could you please add the method which supports clicking on text within an interface? Thank you.