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
WBOYavant
2023-09-08 10:45:011011parcourir

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();
   }
}

输出

如何使用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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Classe CaseFormat en JavaArticle suivant:Classe CaseFormat en Java