Нажав на гипертекстовую ссылку, используя XPath

Извиняюсь, если это глупый вопрос - я новичок в Selenium.

У меня есть тестируемая веб-страница с несколькими гипертекстовыми ссылками в таблице. HTML выглядит так:

<table>
  <thead>
    <tr>
      <td><b>History</b></td>
      <td><b>Attributes</b></td>
      <td><b>Xml</b></td>
    </tr>
  </thead>
  <tbody>    
    <tr>
      <td><a href=link here>Show</a></td> 
      <td><a href=link here>Show</a></td>
      <td><a href=link here>Show</a></td> 
    </tr>
  </tbody>
</table>

Я хочу проверить клик по каждой из ссылок «Показать». Все они имеют одинаковый текст, поэтому я не могу ссылаться на них по тексту ссылки. Я ссылаюсь на них с помощью XPath, так что:

driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2]/thead/tr/td[1]").getText()

правильно возвращает «История» и

driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2]/tbody/tr/td[1]").getText()

правильно возвращает «Показать».

Поэтому я думаю, что:

driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2]/tbody/tr/td[1]")).click()

будет щелкнуть ссылку «Показать» в первом столбце. Но это не так - ничего не происходит.

Если я сделаю:

driver.findElement(By.linkText("Show")).click()

он нажимает на первую ссылку «Показать», чего я и ожидаю.

Я также могу сделать:

driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2].1.0")).click()

и это работает, как и

driver.findElement(By.xpath("(//a[contains(text(),'Show')])[2]")).click()

Итак, подведем итог, все эти работы:

driver.findElement(By.linkText("Show")).click()
driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2].1.0")).click()
driver.findElement(By.xpath("(//a[contains(text(),'Show')])[1]")).click()

но это не так:

driver.findElement(By.xpath("//div[@id='content']/div/form/div/table[2]/tbody/tr/td[1]")).click()

Почему?

Ответы на вопрос(3)

Ваш ответ на вопрос