Selenium WebDriver no puede encontrar elemento por texto de enlace

Intento seleccionar un elemento que incluya un ancla, pero el texto está enterrado en un párrafo dentro de un div. Aquí está el HTML con el que estoy trabajando:

 

Smoke Sequential

El código que estoy usando para tratar de engancharlo apunta al texto “Smoke Sequential” con:

 driver.findElement(By.linkText(service)).click(); 

Donde la variable ‘servicio’ contiene “Secuencia de Humo” en ella. Cuando lo ejecuto, aparece el siguiente error:

 org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"link text","selector":"Smoke Sequential"} 

Cualquier ayuda sería muy apreciada.

El problema podría estar en el rest del html, la parte que no publicaste.

Con este ejemplo (acabo de cerrar las tags abiertas):

  

Smoke Sequential

Pude encontrar el elemento sin problemas con:

 driver.findElement(By.linkText("Smoke Sequential")).click(); 

Si hay más texto dentro del elemento, puede intentar una búsqueda por texto de enlace parcial:

 driver.findElement(By.partialLinkText("Sequential")).click(); 

Use xpath y texto ()

 driver.findElement(By.Xpath("//strong[contains(text(),'" + service +"')]")); 

Esto no parece tener tags por lo que el selenium podría no ser capaz de detectarlo como un enlace.

Puede intentar y usar

 driver.findElement(By.xpath("//*[@class='ng-binding']")).click(); 

si este es el único elemento en esa página con esta clase.

Un enfoque de selector de CSS definitivamente podría funcionar aquí. Tratar:

 driver.findElement(By.CssSelector("a.item")).Click(); 

Esto no funcionará si hay otros anclajes antes de este elemento de la clase. Puede especificar mejor el elemento exacto si hace algo como “#my_table> a.item” donde my_table es el id de una tabla de la que el anclaje es hijo.

 find_elements_by_xpath("//*[@class='class name']") 

es una gran solución