getWindowHandles
운영체제에서 부여한 윈도우별 id : 핸들값 핸들id
import java.util.List;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Quiz02 {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
ChromeOptions option = new ChromeOptions();
// option.addArguments("headless"); // 헤드레스 모드, 창없이 내부적으로 처리
// option.addArguments("--blink-setting=imagesEnable=false"); // 페이지 로딩에서 이미지 제외
// WebDriver driver = new ChromeDriver(option);
WebDriver driver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver,10);
JavascriptExecutor js = (JavascriptExecutor)driver;
long startTime = System.currentTimeMillis();
driver.get("https://front.wemakeprice.com/promotion/3693");
String defaultWindow = driver.getWindowHandle(); // 윈도우핸들값 저장
List<WebElement> product_btns = driver.findElements(By.className("flag_wrap"));
product_btns.get(0).click();
// 운영체제가 윈도우 별로 id를 부여 : 핸들값 핸들id
// getWindowHandles : 핸들값을 가져와라
Set<String> hwnds = driver.getWindowHandles();
//set 은 순서가 없으므로 foreach로 출력
System.out.println("Default hwnd : "+defaultWindow);
for(String hwnd : hwnds) {
System.out.println(hwnd);
if(!hwnd.contentEquals(defaultWindow)) { //변경
driver.switchTo().window(hwnd);
break;
}
}
List<WebElement> buy_btns = driver.findElements(By.className("btn_sys"));
buy_btns.get(0).click();
long endTime = System.currentTimeMillis();
System.out.println( endTime - startTime );
Thread.sleep(5000);
driver.close();
}
}
defaultWindow 저장
String defaultWindow = driver.getWindowHandle(); // 윈도우핸들값 저장
// 운영체제가 윈도우 별로 id를 부여 : 핸들값 핸들id
// getWindowHandles : 핸들값을 가져와라
Set<String> hwnds = driver.getWindowHandles();
System.out.println("Default hwnd : "+defaultWindow);
//set 은 순서가 없으므로 foreach로 출력
for(String hwnd : hwnds) {
System.out.println(hwnd);
if(!hwnd.contentEquals(defaultWindow)) { //변경
driver.switchTo().window(hwnd);
break;
}
}
새탭으로 이동
import java.util.List;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Quiz02 {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
ChromeOptions option = new ChromeOptions();
WebDriver driver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver,10);
JavascriptExecutor js = (JavascriptExecutor)driver;
long startTime = System.currentTimeMillis();
driver.get("https://front.wemakeprice.com/promotion/3693");
String defaultWindow = driver.getWindowHandle(); // 윈도우핸들값 저장
List<WebElement> product_btns = driver.findElements(By.className("flag_wrap"));
product_btns.get(0).click();
// 운영체제가 윈도우 별로 id를 부여 : 핸들값 핸들id
// getWindowHandles : 핸들값을 가져와라
Set<String> hwnds = driver.getWindowHandles();
//set 은 순서가 없으므로 foreach로 출력
System.out.println("Default hwnd : "+defaultWindow);
for(String hwnd : hwnds) {
driver.switchTo().window(hwnd);
System.out.println(hwnd);
}
List<WebElement> buy_btns = driver.findElements(By.className("btn_sys"));
buy_btns.get(0).click();
long endTime = System.currentTimeMillis();
System.out.println( endTime - startTime );
Thread.sleep(5000);
driver.close();
}
}'디지털 컨버전스 > Selenium' 카테고리의 다른 글
| [Selenium] 타임딜 (0) | 2020.04.22 |
|---|---|
| [Selenium] 이미지 로딩 제거 (0) | 2020.04.22 |
| [Selenium] iframe - 내게쓰기 입력 (0) | 2020.04.22 |
| [Selenium] 자바스크립트 입력 - 로그인 (0) | 2020.04.22 |
| [Selenium] 명시적 대기 (0) | 2020.04.22 |