Haciendo clic en un enlace de hipertexto usando XPath

Disculpas si esta es una pregunta tonta, soy nuevo en Selenium.

Tengo una página web que estoy probando que tiene algunos enlaces de hipertexto en una tabla. El HTML se ve así:

<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>

Quiero probar un clic en cada uno de los enlaces 'Mostrar'. Todos tienen el mismo texto, por lo que no puedo hacer referencia a ellos por linktext. Los he estado haciendo referencia a ellos por XPath, de modo que:

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

devuelve correctamente 'Historia' y

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

Correcto devuelve 'Mostrar'.

Así que pensaría que:

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

Haría clic en el enlace 'Mostrar' en la primera columna. Pero no es así, no pasa nada.

Si lo hago:

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

hace clic en el primer enlace 'Mostrar', que es lo que espero.

También puedo hacer:

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

y eso funciona, como lo hace

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

Entonces, para resumir, todos estos trabajos:

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()

pero esto no lo hace

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

¿Por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta