Selenium version : 4.15.2
글 최종 작성일 : 2023-12-03
📍 과정이 있는 글이라 지름길은 '본론' 클릭
본 글은 📎메타코드M님의 유튜브 강의를 참고하여 쓴 글입니다.
Selenium을 사용해서 네이버를 로그인해보겠다.
Logic
- 아이디 입력
- 비밀번호 입력
- 로그인 버튼 클릭
전체 코드
* 네이버의 url이나 선택자는 변경될 수 있다.
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
# 네이버 로그인 URL 주소
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
time.sleep(2)
# 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.send_keys("아이디") #본인 아이디 입력
time.sleep(2)
# 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
pw.send_keys("비밀번호") #본인 비밀번호 입력
time.sleep(2)
# 로그인 버튼 클릭
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
코드 설명
- 요소의 선택자 값 가져오는 방법은 아래에서 설명
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
get("로드할 URL 주소")
: 웹페이지 로드
id = driver.find_element(By.CSS_SELECTOR, "#id")
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
find_element(By.selector, selector 값)
: 특정 요소를 찾는 데 사용find_elements()
도 있음. 철자 조심!
id.send_keys("아이디")
pw.send_keys("비밀번호")
send_keys("값")
: 현재 초점을 맞춘 요소에 키를 보냄.
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
click()
: 요소 클릭
요소의 선택자 값 가져오기
1. 네이버 로그인 창에서 개발자 모드(F12) 열기

2. 특정 요소 선택
- 화살표(빨강)를 클릭하고 값을 알기 원하는 요소 클릭
- 그림의 예시는 아이디 인풋의 요소 값을 알기 위함.

3. 특정 요소의 선택자 값 가져오기
- 요소를 클릭하면 해당 소스로 이동됨.
- 코드 보고 값을 가져오는 방법은
id="id"
일 때#id
가 선택자 값. (class는.id
)

- 쉽게 가져오는 방법은 요소 영역에서 오른쪽 클릭 > Copy > Copy selector 클릭

* 위에서 말했듯이 html 소스 코드가 변경되면 selector의 값이 현재 작성 글과 다를 수 있다. 그렇기 때문에 선택자의 값을 직접 가져오는 것이 좋을 것 같다!
결과
- 아이디와 비밀번호가 입력되고, 로그인 버튼까지 클릭했다. 그런데 아래와 같은 현상이 발생했다.
- 우회하는 방법을 본론에서 설명하겠다!

본론
Logic
- 아이디/비밀번호 요소 클릭
- 아이디/비밀번호 값 복사
- 아이디/비밀번호 붙여넣기
- 로그인 버튼 클릭
전체 코드
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pyperclip
import pyautogui
driver = webdriver.Chrome()
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
time.sleep(2)
# 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.click()
pyperclip.copy("아이디") # 본인 아이디 입력
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
pw.click()
pyperclip.copy("비밀번호") # 본인 비밀번호 입력
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# 로그인 버튼
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
코드 설명
(위에서 설명한 코드는 생략...)
pyperclip.copy("아이디")
pyperclip.copy("비밀번호")
copy("복사할 값")
: 클립보드 복사
pyautogui.hotkey("ctrl", "v")
hotkey("키보드키")
: 키보드 키를 순서대로 누름
결과
- 로그인에 성공했다!

Ref.
1. pyperclip / https://github.com/asweigart/pyperclip
2. pyautogui / https://pyautogui.readthedocs.io/en/latest/
* 잘못된 부분에 대해 댓글 남겨주시면 감사하겠습니다! 😀
'Python' 카테고리의 다른 글
[Python/Pandas] pandas.cut() (1) | 2024.03.11 |
---|---|
[Python/Selenium] 네이버 메일 전송 자동화 (0) | 2023.12.04 |
[Python] bisect - 배열 이진 분할 알고리즘 (0) | 2023.05.25 |
[Python] map에 대하여 (0) | 2023.02.21 |
[Python] 리스트 컴프리헨션 (0) | 2023.02.13 |
Selenium version : 4.15.2
글 최종 작성일 : 2023-12-03
📍 과정이 있는 글이라 지름길은 '본론' 클릭
본 글은 📎메타코드M님의 유튜브 강의를 참고하여 쓴 글입니다.
Selenium을 사용해서 네이버를 로그인해보겠다.
Logic
- 아이디 입력
- 비밀번호 입력
- 로그인 버튼 클릭
전체 코드
* 네이버의 url이나 선택자는 변경될 수 있다.
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
# 네이버 로그인 URL 주소
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
time.sleep(2)
# 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.send_keys("아이디") #본인 아이디 입력
time.sleep(2)
# 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
pw.send_keys("비밀번호") #본인 비밀번호 입력
time.sleep(2)
# 로그인 버튼 클릭
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
코드 설명
- 요소의 선택자 값 가져오는 방법은 아래에서 설명
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
get("로드할 URL 주소")
: 웹페이지 로드
id = driver.find_element(By.CSS_SELECTOR, "#id")
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
find_element(By.selector, selector 값)
: 특정 요소를 찾는 데 사용find_elements()
도 있음. 철자 조심!
id.send_keys("아이디")
pw.send_keys("비밀번호")
send_keys("값")
: 현재 초점을 맞춘 요소에 키를 보냄.
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
click()
: 요소 클릭
요소의 선택자 값 가져오기
1. 네이버 로그인 창에서 개발자 모드(F12) 열기

2. 특정 요소 선택
- 화살표(빨강)를 클릭하고 값을 알기 원하는 요소 클릭
- 그림의 예시는 아이디 인풋의 요소 값을 알기 위함.

3. 특정 요소의 선택자 값 가져오기
- 요소를 클릭하면 해당 소스로 이동됨.
- 코드 보고 값을 가져오는 방법은
id="id"
일 때#id
가 선택자 값. (class는.id
)

- 쉽게 가져오는 방법은 요소 영역에서 오른쪽 클릭 > Copy > Copy selector 클릭

* 위에서 말했듯이 html 소스 코드가 변경되면 selector의 값이 현재 작성 글과 다를 수 있다. 그렇기 때문에 선택자의 값을 직접 가져오는 것이 좋을 것 같다!
결과
- 아이디와 비밀번호가 입력되고, 로그인 버튼까지 클릭했다. 그런데 아래와 같은 현상이 발생했다.
- 우회하는 방법을 본론에서 설명하겠다!

본론
Logic
- 아이디/비밀번호 요소 클릭
- 아이디/비밀번호 값 복사
- 아이디/비밀번호 붙여넣기
- 로그인 버튼 클릭
전체 코드
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pyperclip
import pyautogui
driver = webdriver.Chrome()
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
time.sleep(2)
# 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.click()
pyperclip.copy("아이디") # 본인 아이디 입력
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, '#pw')
pw.click()
pyperclip.copy("비밀번호") # 본인 비밀번호 입력
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# 로그인 버튼
driver.find_element(By.CSS_SELECTOR, "#log\.login").click()
코드 설명
(위에서 설명한 코드는 생략...)
pyperclip.copy("아이디")
pyperclip.copy("비밀번호")
copy("복사할 값")
: 클립보드 복사
pyautogui.hotkey("ctrl", "v")
hotkey("키보드키")
: 키보드 키를 순서대로 누름
결과
- 로그인에 성공했다!

Ref.
1. pyperclip / https://github.com/asweigart/pyperclip
2. pyautogui / https://pyautogui.readthedocs.io/en/latest/
* 잘못된 부분에 대해 댓글 남겨주시면 감사하겠습니다! 😀
'Python' 카테고리의 다른 글
[Python/Pandas] pandas.cut() (1) | 2024.03.11 |
---|---|
[Python/Selenium] 네이버 메일 전송 자동화 (0) | 2023.12.04 |
[Python] bisect - 배열 이진 분할 알고리즘 (0) | 2023.05.25 |
[Python] map에 대하여 (0) | 2023.02.21 |
[Python] 리스트 컴프리헨션 (0) | 2023.02.13 |