[Selenium] 자바(Java)에서 셀레늄(Selenium) 사용하기 [Selenium, 웹 애플리케이션 테스트를 위한 프레임워크]

2022. 8. 2. 23:00·▣ Framework/Selenium🌕
728x90
반응형


1. Selenium, 웹 애플리케이션 테스트를 위한 프레임워크

- Selenium 주입

- maven : https://mvnrepository.com/artifact/org.seleniumhq.selenium

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-api</artifactId>
    <version>3.141.59</version>
</dependency>

<!-- chrome-driver 사용 예정 -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>3.141.59</version>
</dependency>

- 크롬 드라이버 다운로드

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 104, please download ChromeDriver 104.0.5112.29 If you are using Chrome version 103, please download ChromeDriver 103.0.5060.134 If you are using Chrome version 102, please download ChromeDriver 102.0.5005.6

chromedriver.chromium.org


2. Selenium 기본 구조

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class SeleniumTest {
    private WebDriver driver;
    
    // 드라이버 설정
    public static final String WEB_DRIVER_ID = "webdriver.chrome.driver";
    // 드라이버 경로 지정
    public static final String WEB_DRIVER_PATH = "D:/devtools/chromedriver_win32/chromedriver.exe";
    // Selenium으로 탐색할 URL
    private String base_url;

    public SeleniumTest() { // 생성자를 통한 값 할당
        System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);

        driver = (WebDriver) new ChromeDriver();
        base_url = "탐색하고자 하는 사이트의 url";
    }

    public void crawl() throws Exception {
        driver.get(base_url); // url을 가져온다.
        // 이하 크롤링 코드 작성 ...
    }

    public static void main(String[] args) throws Exception {
    	new SeleniumTest().crawl(); // main에서 메서드 crawl()을 실행하면 크롤링 시작!
    }
}

3. Selenium 기본 문법

1) element, elements : Selenium으로 탐색한 객체

// DOM에서 탐색한 객체 저장
WebElement element = driver.findElement( /* 한 개의 값 */ );
List<WebElement> elements = driver.findElements( /* 복수 개의 값 */ );

element.click(); // 해당 객체 클릭
element.getText(); // 해당 객체의 텍스트 반환
element.getAttribute("이름") // 해당 객체의 attribute 반환
elements.getSize(); // 해당 객체의 개수 반환

2) By : DOM 객체 탐색 방법

// 많이 쓰이는 방법
By.cssSelector(".restaurant-list > div"); // css 셀렉터로 탐색
By.ByXPath("//*[@id='cntntsView']/div[1]"); // 경로로 탐색

By.id("content"); // id 속성으로 탐색
By.tagName("table"); // tag 명으로 탐색
By.name("address_input"); // name 속성으로 탐색
By.className("restaurant-list"); // class 속성으로 탐색
By.linkText("현재 위치로 설정합니다."); // 링크가 있는 텍스트 탐색

- XPath 쉽게 찾는 방법

 

[Selenium] XPath 쉽게 찾는 방법 [Chrome 개발자도구로 XPath 찾기]

[Selenium] 자바(Java)에서 셀레늄(Selenium) 사용하기 [Selenium, 웹 애플리케이션 테스트를 위한 프레임 1. Selenium, 웹 애플리케이션 테스트를 위한 프레임워크 - Selenium 주입 - maven : https://mvnr..

yermi.tistory.com


728x90
반응형
'▣ Framework/Selenium🌕' 카테고리의 다른 글
  • [Selenium] 페이지 로딩 될 때까지 기다리기 [WebDriverWait, Java 셀레늄 페이지 로딩 대기하기]
  • [Selenium] no such element: Unable to locate element 해결방법 [요소가 없다: try-catch로 예외처리]
  • [Selenium] stale element reference: element is not attached to the page document 해결방법 [오래된 요소 참조: 페이지 이동에 따른 변수 값 초기화]
  • [Selenium] XPath 쉽게 찾는 방법 [Chrome 개발자도구로 XPath 찾기]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (1024) N
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (30)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ Infra & DevOps (19) N
        • LGTM Stack🔭 (5)
        • Kafka🐦‍🔥 (0)
        • Kubernetes🚢 (8)
        • KubeCon Japan 2026⚓ (6) N
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (49)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (5)
        • 오늘가챠🃏 (8)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (80)
        • 백준(BOJ)👨🏻‍💻 (71)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
      • ◈ Study (129)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 알고리즘(Algorithm)🎡 (14)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (11)
        • 인공지능 AI🛸 (8)
      • ◈ 공부모임 (57)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (17)
        • 국가기술자격 서포터즈🌻 (12)
      • ◈ 자격증 공부 (48)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 정보보안기사⚜️ (11)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (124)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (55)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 반응형
    250x250
  • 태그

    javascript
    꿀팁
    코딩
    spring
    백준 티어
    프로그래밍
    Java
    CSS
    Oracle
    백준
    Error Note
    jsp
    spring boot
    코딩 테스트
    Database
    BOJ
    자바스크립트
    일상
    Project
    SQL
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[Selenium] 자바(Java)에서 셀레늄(Selenium) 사용하기 [Selenium, 웹 애플리케이션 테스트를 위한 프레임워크]
상단으로

티스토리툴바