¿Cómo puedo hacer que mis pruebas de selenio sean menos frágiles?

Usamos Selenium para probar la capa de interfaz de usuario de nuestra aplicación ASP.NET. Muchos de los casos de prueba prueban flujos más largos que abarcan varias páginas.

Descubrí que las pruebas son muy frágiles, rotas no solo por cambios en el código que realmente cambian las páginas, sino también por refactorizaciones inocuas como cambiar el nombre de un control (ya que necesito pasar el ID de cliente del control al método Click de Selenium, etc.) o reemplazarlo Una vista de cuadrícula con un repetidor. Como resultado, me encuentro "perdiendo" el tiempo actualizando los valores de cadena en mis casos de prueba para corregir las pruebas rotas.

¿Hay alguna manera de escribir más pruebas de mantenimiento de Selenium? ¿O una mejor herramienta de prueba de IU web?

Editado para agregar: Generalmente, el primer borrador se crea registrando una prueba en el IDE. (Este primer paso puede ser realizado por el personal de control de calidad). Luego refactorizo el código C # generado (extraer constantes, extraer métodos para código repetido, tal vez repetir el caso de prueba con diferentes datos, etc.). Pero el flujo general de código para cada caso de prueba permanece razonablemente cerca del código generado originalmente.

Respuestas a la pregunta(7)

Su respuesta a la pregunta