title: What is better test design: Navigate directly to URL or navigate normally by clicking (as a real user would) in selenium tests
body: <p>Let us say my test wants to see if a user can see an image on XYZ page. And let's say in normal usage, the user can only go to XYZ page by clicking a link on ABC page (might be the home page).
  Now assuming the URL to XYZ page is not static, but maybe depends on the image, and can be generated in the code simply, I have two ways of writing the test:</p>
  
  <ol>
  <li>Generate the URL in test and directly navigate to XYZ, and then check if the image is present.</li>
  <li>Go to ABC like a normal user would, click on the link which takes you to XYZ and then check for image</li>
  </ol>
  
  <p><strong>For option 1</strong>, I feel like I get more test isolation. If the link on ABC page is not generated correctly or is broken for some other reason, this particular test should not fail, right? That should be the responsibility of some other test?</p>
  
  <p><strong>But for option 2</strong>, that is how a real user would do it. He would almost never try to guess the pattern of the URL and then navigate to it directly. And I cannot have a huge test that goes to every link and sees if it is not broken, that would be way too complicated. So this much sacrifice in test isolation is needed. </p>
  
  <p>How should I decide between the two options? Is there a right way? Hopefully the question is not too subjective for stackoverflow.</p>