네이버로그인 - 파이썬 셀레늄

셀레늄을 이용하여 로그인 하기

지금까지 셀레늄 웹드라버를 설치하고,
각각의 요소(tag, text 등)들을 어떻게 찾는지에 대해 진행했습니다.
이번에는 셀레늄을 이용하여 네이버 로그인 해보겠습니다.

셀레늄 및 웹드라이버 매니저 설치
find element 사용하기
find element By사용하기


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

driver.implicitly_wait(10) #10초대기 설정

driver.get("https://www.naver.com")

from selenium.webdriver.common.by import By
driver.find_element(By.CLASS_NAME,'link_login').click()

user = {'id':'아이디넣는곳','pw':'비밀번호 넣는곳'}

#이미지 캡차 발생
#driver.find_element(By.ID,'id').send_keys(user['id'])
#driver.find_element(By.ID,'pw').send_keys(user['pw'])
#driver.find_element(By.CLASS_NAME, 'btn_global').click()

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import pyperclip

driver.find_element(By.ID,'id').click()
pyperclip.copy(user['id'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.ID,'pw').click()
pyperclip.copy(user['pw'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.CLASS_NAME, 'btn_global').click()

아래 패키지를 설치합니다.

1
pip install  pyperclip

id/pw를 find_element 찾아서 send_keys로 넣었더니 이미지캡챠가 뜹니다.
복사 붙여 넣기 방식으로 변경하기 위해
pyperclip와 ActionChains, Key 기능을 이용하였습니다.

pyperclip은 copy() 함수로 클립보드에 복사하는 역활을 합니다.
ActionChains은 키보드를 입력하는 것과 같은 효과를 주는 메소드입니다.

perform() : 스택에 쌓아놓은 행동을 모두 수행합니다.
- perform() 실행되어야 아래 3가지 기능을 수행합니다.

key_down(Keys.CONTROL) : 키보드의 ctrl키를 누릅니다.
send_keys('v') : 클립보드의 내용을 붙여넣기 합니다.
key_up(Keys.CONTROL) : 누르고 있는 ctrl키를 올립니다.



ActionChains의 더많은 기능은 https://selenium-python.readthedocs.io/api.html#action-chains에서 확인하실 수 있습니다.


TAG: #셀레늄 #naver #ActionChains #pyperclip #로그인