View all web browser and mobile devices available in our cloud-based test lab.
Object identification in Selenium test automation is important. Here, we cover why — and how to do it.
Object identification in Selenium is important.
It helps you handle a dynamic list of object id changes, based on the number of rows. It also provides better validation options for the list of objects in one screen. It helps you find elements where the relative XPath is different across devices. And, finally, it helps you get dynamic data from the screen.
Now that you know why object identification is important, let's cover how to do it.
Here's how to identify objects in Selenium. Your first step is to get an object list. In Selenium, you can get list of objects with specific property. Then you can manipulate it in the code.
Let's use the following as our working example:
I would like to get the cars category list and number of car in each category.
In this example, all the items has the same class property : ui-link-inherit.
In the code, use findElements command with XPath “contains” option with the specific property.
List<WebElement> objList = webDriver.findElements(By.xpath("(//div[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][@id=\"Content-\"])/ul/li/following::*[contains(@class,\"ui-link-inherit\")]"));
Loop over the WebElement list to work with the objects.
In this example I need to set an anchor to the list as part of my XPath because the page contains other object with the same class property which I want to exclude.
Part 1: The first part is setting the anchor for the elements I looking for:
Part 2: the second part is getting all the objects with the calss ui-link-inherit
There's a code example in GitHub.
Throughout this blog, I've used XPath as an example. There are options for Selenium locators, too, besides XPath. Here's a quick list of locators that can help you identify elements.:
Selenium is a great open source framework for automated web testing. But it can't do it all.
Perfecto pairs with Selenium to to make it even better. For example:
See for yourself why teams everywhere pair Selenium with Perfecto. Try it for free today.
Director of Technology, Perfecto
Uzi joined Perfecto Mobile seven years ago after a fifteen year career as a software developer and manager at IDF, Netrialty, Comverse and Sundisk. Over the past seven years, Uzi has helped grow Perfecto by managing expanding R&D teams and leading sales engineering teams. His fields of expertise include agile methodologies, mobile application testing, automation tools, and defining customer projects and on-boarding.