web-dev-qa-db-fra.com

Sélénium Attendez que quelqu'un d'Element soit visible

En cliquant sur un bouton particulier - mon site de test ouvrira une fenêtre modale.

Mais la fenêtre modale s'ouvre est différente, soit elle s'ouvre avec modal window 1 or modal window 2

Les deux ont un titre différent, des options différentes et des localisateurs différents. Maintenant, je devrais attendre que le modal window open Either 1 or 2.

Est-il possible d'attendre qu'une des fenêtres modales (WebElement) soit visible?

J'ai cherché dans les méthodes WebDriverWait, mais toutes les méthodes doivent attendre qu'un élément WebElement particulier soit visible ou cliquable.

Je ne peux pas trouver de meilleure méthode pour attendre que l'une ou l'autre soit visible.

Pourriez-vous suggérer une méthode pour résoudre cette situation?

6
Vanjithkumar

Vous pouvez utiliser orconditions attendues pour cela

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.or(
    ExpectedConditions.visibilityOfElementLocated(By.id("id1")),
    ExpectedConditions.visibilityOfElementLocated(By.id("id2"))
));

Ou utilisez cssSelector ou ,

wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#id1, #id2"));
9
Guy