Humans don't parse DOM trees any more than they hunt for ids and classes. They see a link that does what they want and they click on it. Correct me if I am wrong, but it seems to me that when detecting whether a link is/isn't displayed on the page, it doesn't matter how the test parses the page. Doing things the users way means using the UI to do things, which both methods do.