IT’s Portfolio

[Python] selenium으로 페이스북 자동 로그인/로그아웃 하기 본문

Development Study/Python

[Python] selenium으로 페이스북 자동 로그인/로그아웃 하기

f1r3_r41n 2020. 4. 12. 22:42
728x90
반응형

어제 selenium을 맛봤으니 오늘은 페이스북 자동 로그인/로그아웃 스크립트를 짜보자

 

준비물: 아이유의 블루밍을 들으면서 해보자

 

import

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time

webdriver, Keys, Options, time을 import한다.

 

coding

path = "C:/Python Library/chrome_driver/chromedriver"
url = "https://www.facebook.com/"

id = ""
pw = ""

# 크롬 옵션 정의 (1이 허용, 2가 차단)
chrome_options = Options()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)

driver = webdriver.Chrome(path, options=chrome_options)
driver.get(url)

# 드라이버가 Facebook에 접근했는지 title을 확인함.
assert "Facebook" in driver.title
login_box = driver.find_element_by_id("email")
login_box.send_keys(id)
login_box = driver.find_element_by_id("pass")
login_box.send_keys(pw)

# Enter키, Keys.ENTER로 바꿔도 무방
login_box.send_keys(Keys.RETURN)

time.sleep(5)

click = driver.find_element_by_id("userNavigationLabel")
click.click()

time.sleep(5)

# text로 로그아웃을 찾는 방법
logout = driver.find_element_by_link_text("로그아웃")
logout.click()

# css 코드로 로그아웃을 찾는 방법
logout = driver.find_element_by_css_selector("li._54ni:nth-child(14) > a:nth-child(1) > span:nth-child(1) > span:nth-child(1)")
logout.click()

time.sleep(5)

driver.close()

주석으로 설명을 달아놨으니 보면서 이해를 하면 될 듯 하다.

 

click = driver.find_element_by_id("userNavigationLabel")

빨간 동그라미 표시가 userNavigationLabel 이다.

 

클릭해서 나오는 창

text로 로그아웃을 찾는 방법. 즉 로그아웃 문자열을 찾아서 클릭하는 방법과

css 코드로 로그아웃을 찾는 방법 두 가지를 위 코딩창에 작성해놓았다.

 

실행하면 페이스북 로그인 후 userNavigationLabel 클릭 후 로그아웃까지 정상적으로 진행되는 것을 확인할 수 있다.

728x90
반응형
Comments