¿Cuál es la mejor y más rápida forma de encontrar el elemento usando webdriver? Por.XPath o By.ID o cualquier otra cosa? ¿Y por qué?

¿Cuál es la mejor y más rápida forma de encontrar el elemento usando webdriver? Por.XPath o By.ID o cualquier otra cosa? ¿Y por qué?

He leído en muchos lugares que XPath es el candidato correcto, pero no pude encontrar la razón exacta para eso.

Encontrar elementos por ID suele ser la opción más rápida, porque en su raíz, finalmente llama a document.getElementById() , que es optimizado por muchos navegadores.

Encontrar elementos mediante XPath es útil para encontrar elementos utilizando selectores muy complejos, y es la estrategia de selección más flexible, pero tiene el potencial de ser muy lenta, especialmente en IE. En IE 6, 7 u 8, encontrar por XPath puede ser un orden de magnitud más lento que hacer lo mismo en Firefox. IE no proporciona una solución nativa XPath-over-HTML, por lo que el proyecto debe utilizar una implementación XPath de JavaScript, y el motor de JavaScript en las versiones heredadas de IE realmente es mucho más lento.

Si necesita encontrar un elemento utilizando un selector complejo, generalmente recomiendo usar selectores de CSS, si es posible. No es tan flexible como XPath, pero cubrirá muchos de los mismos casos, sin exhibir la penalización de rendimiento extremo en IE que XPath puede.

Obviamente By.id() es más rápido en comparación con By.xpath() ya que By.id() es accesible rápidamente. Pero, en By.xpath() , llevará tiempo atravesar.

Conclusión: By.id() es más rápido en comparación con By.xpath()

La forma más rápida es obvia al usar By.id (), pero también tiene una alternativa que utiliza By.name (), también tiene la misma velocidad que en By.id (). Y cssSelector también usa el id, nombre por lo que es equivalente a buscar By.id () y By.name (). La razón principal para usar xpath es que cada elemento web tiene la ruta única asignada a él, de modo que cuando el mismo id, nombre y nombre de clase son compartidos por dos elementos, entonces xpath es la opción, como una solución única.