Selenium Webdriver を使用して特定のウィンドウを閉じることができます。 getWindowHandles メソッドと getWindowHandle メソッドを使用して、子ウィンドウを処理できます。 getWindowHandles メソッドは、開いているすべてのウィンドウ ハンドルを Set データ構造に保存するために使用されます。
getWindowHandle メソッドは、フォーカスされているブラウザ ウィンドウのウィンドウ ハンドルを保存するために使用されます。 Set データ構造をコード内に収容するには、import java.util.Set ステートメントと import java.util.List ステートメントを追加する必要があります。
デフォルトでは、ドライバーはオブジェクトは親ウィンドウの要素にのみアクセスできます。フォーカスを親ウィンドウから子ウィンドウに切り替えるには、switchTo().window メソッドを利用し、子ウィンドウのウィンドウ ハンドル ID を引数としてメソッドに渡します。次に、子ウィンドウから親ウィンドウに移動するには、switchTo().window メソッドを利用し、親ウィンドウのハンドル ID を引数としてメソッドに渡します。
コードの実装。
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 を使用して特定のウィンドウを閉じるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。