Allen's 데이터 맛집
[1] Java를 사용한 자동 로그인: Robot 클래스를 활용한 원시적 접근 본문
etc Project/셀레니움을 활용한 이메일 자동 로그인
[1] Java를 사용한 자동 로그인: Robot 클래스를 활용한 원시적 접근
Allen93 2024. 9. 19. 15:09이번 포스팅에서는 Java의 Robot 클래스를 사용하여 브라우저 자동 로그인을 구현하는 방법을 소개하겠습니다. 이 방법은 키보드와 마우스를 제어하여 자동으로 웹사이트에 로그인하는 간단한 예제입니다. 이 프로젝트는 자동화에 대한 기초 개념을 배우는 데 매우 유용합니다.
프로젝트 목표
이 프로젝트의 목표는 다음과 같습니다:
- Robot 클래스를 사용하여 브라우저를 실행하고, 특정 웹사이트에 접속합니다.
- 키보드와 마우스를 제어하여 자동으로 로그인 정보를 입력하고 로그인합니다.
코드 설명
아래는 Robot 클래스를 사용한 자동 로그인 코드입니다:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.*;
public class RobotDemo {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
String exeFile = ""; // 실행할 파일 위치
Process p;
int URLaddress[] = {
KeyEvent.VK_D,
KeyEvent.VK_A,
KeyEvent.VK_U,
KeyEvent.VK_M,
KeyEvent.VK_PERIOD, // . 온점
KeyEvent.VK_N,
KeyEvent.VK_E,
KeyEvent.VK_T,
KeyEvent.VK_ENTER
};
int ID[] = {
KeyEvent.VK_S,
KeyEvent.VK_I,
KeyEvent.VK_L,
KeyEvent.VK_V,
KeyEvent.VK_E,
KeyEvent.VK_R,
KeyEvent.VK_9,
KeyEvent.VK_4
};
int PW[] = {
KeyEvent.VK_, // 여기에 비밀번호 키 입력 추가
// ...
};
try {
Robot robot = new Robot();
p = rt.exec(exeFile); // 프로그램 실행
p.waitFor();
Thread.sleep(1000);
robot.mouseMove(412, 53); // 주소창에 마우스 이동 후 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
for (int i = 0; i < URLaddress.length; i++) { // naver.com 입력 후 엔터
robot.keyPress(URLaddress[i]);
robot.keyRelease(URLaddress[i]);
}
robot.delay(1000); // 페이지 로딩을 위해 1초 딜레이
robot.mouseMove(1302, 313); // naver.com의 로그인 버튼 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(1000); // 페이지 로딩을 위해 1초 딜레이
robot.mouseMove(697, 239); // ID 텍스트 상자 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(1000); // 페이지 로딩을 위해 1초 딜레이
for (int i = 0; i < ID.length; i++) { // ID 입력
robot.keyPress(ID[i]);
robot.keyRelease(ID[i]);
}
robot.mouseMove(712, 297); // PW 텍스트 상자 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
for (int i = 0; i < PW.length; i++) { // PW 입력
robot.keyPress(PW[i]);
robot.keyRelease(PW[i]);
}
robot.mouseMove(790, 390); // LOGIN 버튼 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
System.exit(0); // 시스템 종료
} catch (AWTException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
주요 코드 설명
- 브라우저 실행 및 주소 입력:
Runtime rt = Runtime.getRuntime();
String exeFile = ""; // 실행할 파일 위치
Process p;
- Runtime.getRuntime().exec(exeFile);을 사용하여 브라우저를 실행합니다.
2. Robot 클래스를 사용한 키보드 입력:
Robot robot = new Robot();
- Robot 객체를 생성하여 키보드와 마우스를 제어합니다.
- URL 입력과 로그인 ID, PW 입력을 각각의 배열에 저장하고, 이를 Robot 클래스를 사용하여 입력합니다.
3. 마우스 이동 및 클릭:
robot.mouseMove(412, 53); // 주소창에 마우스 이동 후 클릭
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
- mouseMove 메서드를 사용하여 마우스를 이동시키고, mousePress와 mouseRelease 메서드를 사용하여 클릭 이벤트를 발생시킵니다.
4. 딜레이 추가:
robot.delay(1000); // 페이지 로딩을 위해 1초 딜레이
- delay 메서드를 사용하여 페이지 로딩을 위한 딜레이를 추가합니다.
5. 로그인 정보 입력:
for (int i = 0; i < ID.length; i++) { // ID 입력
robot.keyPress(ID[i]);
robot.keyRelease(ID[i]);
}
반복문을 사용하여 ID와 PW를 입력합니다.
Java의 Robot 클래스를 사용하여 간단한 브라우저 자동화와 로그인 과정을 구현하는 예제입니다. 이 코드를 통해 키보드와 마우스를 제어하여 웹 자동화를 구현하는 기본적인 방법을 배울 수 있습니다. 더 나아가 Selenium과 같은 프레임워크를 사용하여 보다 정교하고 강력한 자동화 시스템을 구축할 수 있습니다.
https://github.com/siilver94/Automatic-Email-Sign_in