# Issue #019: Expected Conditions Mejoradas **Tipo**: Enhancement **Prioridad**: Alta **Estado**: En progreso ## Descripción Implementar condiciones de espera específicas y predefinidas, similares a Selenium Expected Conditions. ## Funcionalidad deseada - WaitUntilVisible - WaitUntilHidden - WaitUntilClickable - WaitUntilEnabled - WaitUntilDisabled - WaitUntilSelected - WaitUntilTextMatches - WaitUntilAttributeContains - WaitUntilURLContains - WaitUntilTitleContains - WaitUntilElementCount ## API propuesta ```go func (b *Browser) WaitUntilVisible(ctx context.Context, selector string, opts *WaitOptions) error func (b *Browser) WaitUntilHidden(ctx context.Context, selector string, opts *WaitOptions) error func (b *Browser) WaitUntilClickable(ctx context.Context, selector string, opts *WaitOptions) error func (b *Browser) WaitUntilEnabled(ctx context.Context, selector string, opts *WaitOptions) error func (b *Browser) WaitUntilDisabled(ctx context.Context, selector string, opts *WaitOptions) error func (b *Browser) WaitUntilTextMatches(ctx context.Context, selector, text string, opts *WaitOptions) error func (b *Browser) WaitUntilAttributeContains(ctx context.Context, selector, attribute, value string, opts *WaitOptions) error func (b *Browser) WaitUntilURLContains(ctx context.Context, pattern string, opts *WaitOptions) error func (b *Browser) WaitUntilTitleContains(ctx context.Context, pattern string, opts *WaitOptions) error ``` ## Uso ```go // Esperar a que elemento sea visible b.WaitUntilVisible(ctx, "#modal", nil) // Esperar a que botón sea clickeable b.WaitUntilClickable(ctx, "#submit-btn", nil) // Esperar a que texto aparezca b.WaitUntilTextMatches(ctx, "#status", "Success", nil) // Esperar cambio de URL b.WaitUntilURLContains(ctx, "/dashboard", nil) ``` ## Referencias - Selenium Expected Conditions: https://www.selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.expected_conditions.html