WebDriverブラウザウィンドウの切り替え

1872 ワード

テストページに2つ以上のウィンドウが同時に表示され、新しく開いたwindowにnamemがない場合はdriverを使用します.switchTo().Windows(winHandleID)を切り替えます.次のコードはすでにIE 8でテストに合格しました.
 
 
//Store the current window handle
String winHandleBefore = driver.getWindowHandle();
		
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
	    	System.out.println("+++" + winHandle);
	        driver.switchTo().window(winHandle);
	        }
// Close the original window
	    driver.switchTo().window(winHandleBefore);
	    driver.close();
	    
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
	    	System.out.println("+++" + winHandle);
	        driver.switchTo().window(winHandle);
	        }

 
最後に1つのウィンドウしか残っていない場合は、そのまま使用できるはずです
driver.switchTo().window(driver.getWindowHandle)
新しいウィンドウを選択
 
 
	public boolean switchToWindow(WebDriver driver,String windowTitle){
		boolean flag = false;
		try {
			String currentHandle = driver.getWindowHandle();
			Set<String> handles = driver.getWindowHandles();
			for (String s : handles) {
				if (s.equals(currentHandle))
					continue;
				else {
					driver.switchTo().window(s);
					if (driver.getTitle().contains(windowTitle)) {
						flag = true;
						System.out.println("Switch to window: "
								+ windowTitle + " successfully!");
						break;
					} else
						continue;
				}
			}
		} catch (NoSuchWindowException e) {
			System.out.println("Window: " + windowTitle
					+ " cound not found!", e.fillInStackTrace());
			flag = false;
		}
		return flag;
	}