Aruna
Aruna

Reputation: 1

Selenium, java and Testng for automation, ways to identify element

I am using Selenium, java and Testng for automation. I am using ID to identify elements, but everybody say that IDs may change and its very brittle way to use Id for testing, so can any one tell me how to use part of id or any other way which will not effect my automation even if there is change in id after some time period.thanks in advance.

Upvotes: 0

Views: 268

Answers (2)

ddavison
ddavison

Reputation: 29042

On the contrary...

A well built application will always have unique ID's on the page, and is the least projection-able thing to change.

Unfortunately, you will run into things that will be dynamic, or even duplicate.

Where I work, our ID's are generated by Apache Tapestry, and turn out to these types of ID's..

  • <input id="someID_124905830" />
  • <input id="submit_0" />

But these are easy to counter using parent-child hierarchy's, or a partial match like input[id^='submit_']

In short. The statement is invalid.

Everybody say that ID's may change and it's very brittle

My question for you is, who is "everybody"? Because "everybody" i talk to, and i'm sure the majority of the web development community would disagree.

Upvotes: 1

Sankumarsingh
Sankumarsingh

Reputation: 10089

There are many more ways to locate an element in Selenium.. other than ID, like xpath, css, dom, link, name etc. However working with xpath and relative xpath will give you confidence about it.

You can google it or can see link1 or link2 or link3

Upvotes: 0

Related Questions