Reading text of the currently selected value from a dropdown list

I was recently working on a test case where I needed to use the default value from a dropdown. For my case, I wanted to know the default location of the user. The dropdown value is set through Javascript and a query. Since it has a default, I didn't want to set it, I wanted to know what that default was. This turned out to be a little more problematic than I thought.

My first attempt was to use .getAttribute which has worked for other fields.

String branchLocation = WebUI.getAttribute(findTestObject('Dropdown Location'),'value') returns
c6f25c57-47a7-4ae3-b269-a57567faa23f which is a GUID and can't be translated into anything I can work with.

I then tried it with getText which does work, but brings back all the options available in the dropdown, not just the currently selected one.

String branchLocation = WebUI.getText(findTestObject('Dropdown Location'))

This returns

Location #1
Location #2
Location #3
Location #4
Etc

This is better, but is clearly more information than I want. All I want is the first entry. With that in mind, the String is turned into a List with a split on the CRLF that exists at the end of each line. This gives one entry for each index of the List

String allBranchLocations = WebUI.getText(findTestObject('Dropdown Location'))
List allBranchesList=allBranchLocations.split("\\r?\\n") //Remove CRLF from each dropdown entry
String branchName=allBranchesList[0]

With that little conversion, branchName contains the first item from the dropdown, which is the default value. This can now be used for my comparison. This may not be the best way to get the first item, or perhaps the most reliable, but it works situation and is easier than some of the other solutions I saw offered up.

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments