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