-1
votes

Basculer vers une nouvelle fenêtre

J'écris un code à l'aide de sélénium.

sur un clic particulier, il y a des chances de venir l'une des deux fenêtres. Et les deux fenêtres prennent environ 20-50 secondes de temps pour apparaître. Donc, je veux passer à la fenêtre de la fenêtre apparaît.

Je n'ai aucun moyen de prédire quelle fenêtre va apparaître Processus actuel - Je recherche une fenêtre principale pendant quelques secondes et si on ne trouve pas, j'essaie de rechercher une petite fenêtre contextuelle avec un bouton OK dessus. Si trouvé, cliquez dessus. Si non trouvé à nouveau, essayez de trouver la fenêtre principale, il prend du temps. Si j'ai un moyen de passer à la dernière fenêtre et en vérifiant son titre qui la fenêtre est et en faisant l'action appropriée.

Edité - La fenêtre principale n'est pas la fenêtre d'origine. Il y a 3 fenêtres totales dans l'image. Une fenêtre OG où je dois cliquer. Maintenant, après avoir cliqué sur la fenêtre principale peut apparaître ou une petite fenêtre contextuelle peut apparaître avec le bouton OK.


0 commentaires

4 Réponses :


0
votes

Vous devez enregistrer la poignée de la fenêtre pour la fenêtre principale avant que toute action ne soit effectuée.

Set<String> windows = driver.getWindowHandles();


2 commentaires

Je suis désolé d'avoir oublié de mentionner que cette fenêtre principale est également une nouvelle fenêtre.


Je suis codé dans Java ... Si vous pouvez, donnez-moi un coup de code



0
votes

Vous pouvez essayer quelque chose comme ceci pour votre problème xxx


2 commentaires

Je suis désolé d'avoir oublié de mentionner que cette fenêtre principale est également une nouvelle fenêtre.


Utilisez la même logique et adaptez-la à vos besoins



0
votes

Pour gérer la taille de Windows, vous pouvez utiliser .getwindowhandles () code> et essayez d'utiliser tandis que la boucle code> Pour attendre les nouvelles fenêtres apparaissent, alors vous pouvez à nouveau itération de toutes les fenêtres actuelles. .

driver.switchTo().window(hnds.get(index));


2 commentaires

Ici si nouvelle fenêtre apparaît, je dois faire boucle à travers toutes les poignées de la fenêtre, passez à la fenêtre et utilisez .Gettitle () pour vérifier si la fenêtre souhaitée est disponible ou non. Ai-je un moyen de passer directement à la nouvelle fenêtre qui est apparue après le clic?


.switchto () Pour changer de fenêtre, ce qui précède est suggéré de le faire.



0
votes

hi Vous pouvez utiliser JavaScript pour commuter Wondow: ci-dessous correspond au code:

((JavascriptExecutor)LoginDriver).executeScript("window.open('about:blank', '-blank')");
    // To switch to the new tab
  ArrayList<String> tabs = new ArrayList<String>(LoginDriver.getWindowHandles());
  LoginDriver.switchTo().window(tabs.get(1));


0 commentaires