자동화 테스트를 하기위해 만들어졌다는 Selenium 으로 자동 로그인을 해보자.
1. 크롬드라이버 설치
2. Selenium Library Import
byte-buddy-1.8.15.jar
client-combined-3.141.59.jar
commons-exec-1.3.jar
guava-25.0-jre.jar
okhttp-3.11.0.jar
okio-1.14.0.jar
3. System 셋팅 & 네이버로 로그인페이지로 이동
System.setProperty("webdriver.chrome.driver", "C:/chromedriver.exe");
WebDriver driver1 = new ChromeDriver();
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com"); //네이버로그인
4. 아이디 넣고, 비밀번호 넣고 Submit! 하면 끝날줄 알았는데.... 자동로그인방지에 걸리네용.
WebElement webElement = driver.findElement(By.id("id"));
webElement.sendKeys("value", "네이버아이디");
pasteClipBoard(webElement , naverId , driver);
Thread.sleep(1000);
webElement = driver.findElement(By.id("pw"));
webElement.sendKeys("value", "네이버비밀번호");
Thread.sleep(1000);
webElement = driver.findElement(By.id("log.login"));
webElement.submit();
5. 아이디. 비밀번호 입력을 클립보드를 이용해 넣으면, 자동로그인에 걸리지 않는다!.
4번을 수정해보자.
/** 로그인 시작 */
WebElement webElement = driver.findElement(By.id("id"));
pasteClipBoard(webElement , naverId , driver);
Thread.sleep(1000);
webElement = driver.findElement(By.id("pw"));
pasteClipBoard(webElement , naverPassWord, driver);
Thread.sleep(1000);
webElement = driver.findElement(By.id("log.login"));
webElement.submit();
/**
* 클립보드 복사
* @param webElement
* @param clipBoardString
*/
public void pasteClipBoard(WebElement webElement , String clipBoardString , WebDriver driver){
Actions actions = new Actions(driver);
webElement.click();
StringSelection stringSelection = new StringSelection(clipBoardString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
actions.keyDown(webElement, Keys.LEFT_CONTROL).perform();
actions.sendKeys(webElement,"v").perform();
}