Entra en el marco antes de nombrar el control.
Mantén el formulario incrustado dentro de su documento, sin convertir el orden del DOM en un requisito del producto.

Edición traducida. Los identificadores técnicos permanecen en su forma original.

Una página tiene dos botones Guardar: uno en los ajustes generales y otro en un formulario incrustado. Nombrar Guardar no indica qué documento debe recibir la acción. Alargar un selector fuera del documento incrustado no resuelve esa falta de ámbito.
Esta guía usa la documentación de marcos de Playwright con un formulario local inventado. La preferencia incrustada debe cambiar y la página exterior debe permanecer igual. No es un componente de pago, una integración de proveedor ni una evaluación de seguridad. La pregunta es si la prueba actuó en el marco correcto.
Nombra el documento antes del control
Los localizadores de página actúan en el marco principal. Un iframe contiene otro documento. Entra con un localizador de marco y después busca el control por su nombre accesible. Los dos ámbitos explican la acción sin depender de coordenadas.
const preferences = page.frameLocator('iframe[title="Demo preferences"]');
await preferences.getByLabel('Display name').fill('Demo reader');
await preferences.getByRole('button', { name: 'Save', exact: true }).click();
await expect(preferences.getByRole('status')).toHaveText('Saved: Demo reader');
await expect(page.getByRole('status')).toHaveText('Outer page unchanged');El ejemplo requiere el iframe indicado, un campo accesible y un estado en cada documento. Importa expect del ejecutor de pruebas de Playwright. La última aserción detecta una acción accidental en la página exterior en lugar de celebrar cualquier guardado.
El título del iframe es un contrato de esta muestra, no una recomendación universal. Elige un identificador que el producto mantenga significativo. Si varios componentes comparten título, todavía falta un propietario único. Habla con el equipo en vez de elegir el primer marco.
Deja que la ambigüedad falle claramente
La API FrameLocator documenta errores cuando el selector coincide con varios marcos. Eso aporta información: quizá apareció otro componente o el selector nunca identificó una función única.
No añadas first() o nth() automáticamente. La posición puede ser un requisito, pero hay que establecerlo antes. Elegir siempre el primer marco puede producir un aprobado cuando otro componente ocupa su lugar.
Los marcos anidados añaden otro ámbito, no permiso para adivinar. Sigue la cadena prevista y mantén la referencia junto a sus aserciones. La guía también permite obtener un Frame por nombre o URL. Elige el método que exprese la pertenencia real, no una mezcla de búsquedas que funcionó por casualidad.
Comprueba el resultado dentro del límite
Rellenar un campo demuestra una acción del navegador. Un mensaje de estado demuestra lo que informó la interfaz. Ninguno prueba por sí solo que un servicio remoto guardó la preferencia. La muestra no tiene servidor; la captura demuestra el mecanismo, no una integración completa.
Para un producto real, define el registro de pruebas autorizado y el resultado persistente esperado. Verifícalo mediante evidencia admitida por el producto y mantén los efectos entre servicios en el entorno autorizado. Alcanzar un control incrustado no autoriza pagos, consentimiento ni cambios de cuenta.
Esta comprobación tampoco certifica navegación por teclado, transferencia de foco o lectores de pantalla. Necesitan expectativas propias. Una etiqueta visible puede coexistir con un comportamiento de foco deficiente.
Deja una nota de revisión concreta
Registra el propietario del marco, el control, el estado modificado y el vecino intacto. Así se distingue un componente ausente de un objetivo ambiguo o de un contrato cambiado. Publica capturas y trazas solo con registros inventados o autorizados.
AnyTest describe agentes que exploran aplicaciones web y producen pruebas de extremo a extremo para revisión humana. Pregunta qué documento recibe cada acción y cómo se demuestra el resultado. No se afirma una API de marcos específica de AnyTest. Primero identifica el documento; después, el control.
Preguntas comunes
¿Un localizador de página entra en todos los iframes?
Las acciones de página operan en el marco principal. Entra en el iframe previsto antes de localizar sus controles.
¿Debe un selector ambiguo elegir el primer marco?
Solo si la posición es el requisito establecido. De lo contrario, corrige el contrato de pertenencia.