yunyj99
라둥이
yunyj99
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (309)
    • 1. 프로그래밍 (50)
      • 1-1. Git (17)
      • 1-2. Java (13)
      • 1-2-1. Java GUI (1)
      • 오류 (12)
      • 기타 (7)
    • 2. Front-end (57)
      • 2-1. HTML (5)
      • 2-2. CSS (19)
      • 2-3. Java Script (33)
      • 2-4. React (0)
    • 3. Back-end (47)
      • 3-1. Spring MVC - 국비 (15)
      • 3-2. Spring MVC - 남궁성 (30)
      • 3-3. Spring - 김영한 (2)
    • 4. Android (1)
    • 5. DB (20)
      • 4-1. MySQL DBMS (20)
    • 6. 자료구조 & 알고리즘 (44)
      • 6-1. 자료구조 (14)
      • 6-2. 백준 (30)
    • 7. 웹 디자인 (7)
      • 7-1. UX 디자인 (7)
    • 8. 자격증 (35)
      • 8-1. 정보처리기사 (35)
    • 프로젝트 (3)
      • 프로젝트 기록 (3)
    • etc... (43)
      • 패스트캠퍼스 챌린지 (39)
      • 잡담 (4)

블로그 메뉴

  • 홈
  • 태그

최근 글

티스토리

hELLO · Designed By 정상우.
yunyj99

라둥이

쓰기
JAVA - [ Selenium 로그인 자동화 / 메서드 ]
1. 프로그래밍/1-2. Java

JAVA - [ Selenium 로그인 자동화 / 메서드 ]

2022. 9. 28. 03:09

로그인 자동화

package selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
 
public class SeleniumTest {
 
    public static void main(String[] args) {
 
        SeleniumTest selTest = new SeleniumTest();
        selTest.crawl();
        
    }
 
    
    //WebDriver
    private WebDriver driver;
    
    //Properties
    public static final String WEB_DRIVER_ID = "webdriver.chrome.driver";
    public static final String WEB_DRIVER_PATH = "C:/selenium/chromedriver.exe";
    
    //크롤링 할 URL
    private String base_url;
    
    public SeleniumTest() {
        super();
 
        //System Property SetUp
        System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
        
        //Driver SetUp (드라이버 옵션 설정)
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--start-maximized"); // 브라우저 최대 크기로 실행
        options.addArguments("--disable-popup-blocking"); // 팝업 창 무시하기
        driver = new ChromeDriver(options);
        base_url = "https://www.naver.com//";
    }
 
    public void crawl() {
 
        try {
            
            driver.get(base_url); //get page (= 브라우저에서 url을 주소창에 넣은 후 request 한 것과 같다)
            Thread.sleep(2000); //페이지 로딩 대기 시간
            
            // 4. 로그인 버튼 클릭
            WebElement element = driver.findElement(By.className("link_login"));
            element.click();
			
            Thread.sleep(1000);
			
            // ID 입력
            element = driver.findElement(By.id("id"));
            element.sendKeys("아이디");
			
            // 비밀번호 입력
            element = driver.findElement(By.id("pw"));
            element.sendKeys("비밀번호");
			
            // 전송
            element = driver.findElement(By.className("btn_login"));
            element.submit();
            
        } catch (Exception e) {
            
            e.printStackTrace();
        
        } finally {
 
            //driver.close(); // 브라우저 종료
        }
 
    }
 
}

 

 

 


메서드

메서드 설명
driver.findElement() 단일 요소 선택
driver.findElements() 복수 요소 선택
By.className("    ") 클래스 이름으로 element 찾기
By.id("    ") 아이디로 element 찾기
By.cssSelector("  ") css 선택자로 element 찾기
By.name("  ") name으로 element 찾기
By.xpath("  ") xpath로 element 찾기
By.linkText("  ") 하이퍼 링크의 텍스트로 찾기 (완전 일치)
By.partialLinkText("  ") 하이퍼 링크의 텍스트로 찾기 (포함)
By.tagName("  ") 태그 이름으로 element 찾기
element.click() 버튼 클릭
element.sendKeys(str) 텍스트 입력
element.submit() 서버로 전송 (제출)
driver.manage().timeouts().implicitlyWait(시간, TimeUnit.SECONDS) 탐색시 object가 없으면 대기하는 시간
driver.close()    브라우저를 종료
driver.getAttribute("속성") 속성 값 가져옴

ex) 

driver.findElement(By.cssSelector("input[name='first_name']"));

 

 


선택자 경로 & xpath 값 찾기

개발자 모드 -> 태그 마우스 오른쪽 클릭 -> copy 메뉴 -> xpath와 css selector 경로 등 확인 가능

 

 


* 모든 사이트들은 접근에 대한 내용을 robot.txt라는 파일 안에 적어둔다. (사이트 주소 뒤에 /robot.txt를 붙이면 확인가능)

로봇의 접근을 허용하면 Allow, 허용하지 않으면 Disallow

<로봇 배제 표준 참조>

https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%B4%87_%EB%B0%B0%EC%A0%9C_%ED%91%9C%EC%A4%80

 

로봇 배제 표준 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 로봇 배제 표준(robots exclusion standard), 로봇 배제 프로토콜(robots exclusion protocol)은 웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약으로, 일반적으로 접근

ko.wikipedia.org

 

 


참조

https://todaycode.tistory.com/5

 

자바로 셀레니움(Selenium)을 써보자 :: 크롤링

1. 셀레니움이란? 2. 셀레니움 사용법 2-1. Chrome 버전 확인 2-2. Chrome WebDriver 다운로드 3. 웹페이지 분석 4. 코드 작성 5. 크롤링 5-1. 셀레니움으로 크롤링을 하는 이유 5-2. 정적 페이지? 동적 페이지?..

todaycode.tistory.com

https://devqa.io/selenium-css-selectors/

 

Selenium CSS Selectors Examples

Locating elements by CSS selectors is the preferred way as it is faster and more readable than XPath.This tutorial provides examples of how to loca...

devqa.io

https://nowonbun.tistory.com/42

 

[Java] Selenium을 사용하는 방법

안녕하세요. 명월입니다. 이 글은 Java에서 Selenium을 사용하는 방법에 대한 글입니다. Selenium에 대해서 Python이나 C#으로 소개를 한 적이 있습니다. Selenium은 브라우져의 API를 이용하여 웹 화면 테스

nowonbun.tistory.com

 

'1. 프로그래밍 > 1-2. Java' 카테고리의 다른 글

JAVA - [2진수,8진수,16진수 <-> 10진수]  (0) 2023.01.23
Java - [ Selenium으로 크롤링 ]  (0) 2022.09.28
JAVA - [ 정규식 이용 특수문자 변환 (replaceAll) ]  (0) 2022.09.08
Java - [ 2차원 배열 정렬 ]  (0) 2022.07.29
Java - [ SHA-256 해시 암호화 알고리즘 ]  (0) 2022.07.05
    '1. 프로그래밍/1-2. Java' 카테고리의 다른 글
    • JAVA - [2진수,8진수,16진수 <-> 10진수]
    • Java - [ Selenium으로 크롤링 ]
    • JAVA - [ 정규식 이용 특수문자 변환 (replaceAll) ]
    • Java - [ 2차원 배열 정렬 ]
    yunyj99
    yunyj99
    개발자를 목표로 하는, 새싹처럼 성장하고 싶은 사람의 학습 공간 ^v^

    티스토리툴바