Maison > Java > javaDidacticiel > Comment fermer une fenêtre spécifique à l'aide de Selenium WebDriver et Java ?

Comment fermer une fenêtre spécifique à l'aide de Selenium WebDriver et Java ?

WBOY
Libérer: 2023-09-08 10:45:01
avant
1047 Les gens l'ont consulté

Nous pouvons fermer une fenêtre spécifique avec Selenium webdriver. Les méthodes getWindowHandles et getWindowHandle peuvent être utilisées pour gérer les fenêtres enfants. La méthode getWindowHandles est utilisée pour stocker tous les handles de fenêtre ouverts dans la structure de données Set.

La méthode getWindowHandle est utilisée pour stocker le handle de fenêtre de la fenêtre du navigateur active. Nous devons ajouter les instructions import java.util.Set et import java.util.List pour s'adapter à la structure de données Set dans notre code.

Par défaut, l'objet pilote ne peut accéder qu'aux éléments de la fenêtre parent. Afin de passer du focus de la fenêtre parent à la fenêtre enfant, nous allons utiliser la méthode switchTo().window et transmettre l'identifiant du handle de fenêtre de la fenêtre enfant comme argument à la méthode. Ensuite, pour passer de la fenêtre enfant à la fenêtre parent, nous allons utiliser la méthode switchTo().window et transmettre l'identifiant du handle de la fenêtre parent comme argument à la méthode.

Exemple

Implémentation du code.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
import java.util.Set;
public class CloseSpecificWindow {
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.get("https://secure.indeed.com/account/login");
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //window handle of parent window
      String m = driver.getWindowHandle();
      driver.findElement(By.id("login-google-button")).click();
      // store window handles in Set
      Set w = driver.getWindowHandles();
      // iterate window handles
      for (String h: w){
         // switching to each window
         driver.switchTo().window(h);
         String s= driver.getTitle();
         // checking specific window title
         if(s.equalsIgnoreCase("Sign in - Google Accounts")){
            System.out.println("Window title to be closed: "+ driver.getTitle());
            driver.close();
         }
      }
      // switching parent window
      driver.switchTo().window(m);
      driver.quit();
   }
}
Copier après la connexion

输出

如何使用Selenium WebDriver和Java关闭特定的窗口?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal