Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Not Answered
+1
person also asked this
people also asked this
Replies
7 replies
Subscribers
10 subscribers
Views
4549 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
General
Hi, I have been tasked with writing automated tests that need to use
michaelp611
over 9 years ago
Hi,
I have been tasked with writing automated tests that need to use (browse, enter texts, click buttons etc) objects on Appian pages. I’ve been looking at the DOM for a few of the early-release pages and have having difficulty identifying ways of performing object identification.
As an example, an Appian page I’m looking at has a number of inputs (text, dates, dropdows etc….). Picking two different textboxes at random I see:-
<input type="text" class="aui-TextInput" id="gwt-uid-245" aria-required="true" aria-invalid="false" style="text-align: left;">
and
<input type="text" class="aui-TextInput" id="gwt-uid-271" aria-required="true" aria-invalid="false" style="text-align: left;">
The wrapping/parent elements do not have anything that can be used and the id attributes change between page renderings. Is anyone else using Test Automation with Appian and if so, how are they doing robust object identification? Is there a way I can get the design...
OriginalPostID-163127
OriginalPostID-163127
Discussion posts and replies are publicly visible
0
michaelp611
over 9 years ago
...ers to add attributes for unique identification or a way to ensure the id attributes (IE. gwt-uid-245) are fixed for the field they are used on?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
aneeshv713
over 9 years ago
You can use Selenium and Cucumber. Every time UI is changed, you have to Update your feature files in Selenium accordingly.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
pritamd
over 9 years ago
Does this Id change after each build deployed? During the Automation testing implementation for Appian Applications, we faced an issue where the Id's changed after each build; However there was still a field where the Prefix remained the same for all the builds and only the value after the postfix kept changing. We were able to use this field as the object identifier.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Michael Chirlin
Appian Employee
over 9 years ago
This is a common occurrence with gwt-based applications. Although there are not constant ids for the form inputs, you can still access the inputs in other ways.
For example, if using Selenium you have the option of accessing css or xpath. Below are two examples:
css:
div.aui-Section:nth-child(0) div.column_panel:nth-child(0) div div div:nth-child(0) div.aui_FieldLayout input
grabs the first field in the first column in the first section
xpath:
//label[contains(text(),'"fieldName"')]/parent::span/following-sibling::div/div/input
grabs the input whose label is fieldName.
It requires building some classes to handle the accessing and population of different Appian field types, but its certainly possible.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
vaibhavm
A Score Level 2
over 9 years ago
The ids are not constant but there are other ways with which you can identify an element. If you're testing using selenium, you can use the fire bug and copy the xpath of that element. You can refer this as well.
www.wikihow.com/Find-XPath-Using-Firebug
. You might have to put some logical functions to fill in fields but it is possible.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
sridharu602
over 9 years ago
Hi Michael,
I hope you would got the solution by this time, how ever I am posting this response so that it might help you and others in case :-)
I used Selenium and UFT as part of automating appian based applications. I have been using the xpath based on the section and the field hierarchy to identify each item unique.
You can use the div in which the input resides, look at the below example:
//label[text()='UDF_DATA']/../following-sibling::div//input
The above xpath will take care the input which is there in the div along with a label for the input field.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Utkarsh Seth
over 9 years ago
Are you still looking to the solution for this one? Let me know if you still need help
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel