2020. 5. 6.
실습 전 할 것
1. 내 크롬브라우저에 맞는 크롬드라이버를 다운
2. 실습하고자 하는 파이썬 파일에 해당 크롬 드라이버를 넣고 실습시작
=> 실습(실행)파일과 동일한 루트에 넣으면 따로 루트 지정필요없이
=> driver = webdriver.Chrome()만으로 실행가능
다음 코드를 입력
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains # 쭉 연결할 수 있게함
import time
driver = webdriver.Chrome()
url = "https://google.com"
driver.get(url)
# driver.maximize_window() # 최대창 실행
action = ActionChains(driver) # action변수로 driver제어
로그인 버튼 클릭하기
클래스,id 둘 다 있기 때문에 클래스보다 우선하는 id를 사용해서 클릭하도록 다음 코드 추가
driver.find_element_by_css_selector('#gb_70').click()
로그인 창, 아이디 입력하기
action변수를 이용한 로그인 창에서 아이디입력하기
action.send_keys('아이디').perform() # 아이디 입력후 바로 실행가능위해 perform()을 썼음
action.reset_actions() # 중복입력방지
로그인 창, 다음 버튼 클릭하기
다음버튼의 class는 위와 같다. 상위 클래스인 CwaK9을 써도 된다.
driver.find_element_by_css_selector('.CwaK9').click()
지금까지의 코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
url = "https://google.com"
driver.get(url)
# driver.maximize_window() # 최대창 실행
action = ActionChains(driver) # action변수로 driver제어
driver.find_element_by_css_selector('#gb_70').click() # 로그인 버튼 클릭
action.send_keys('study2025').perform() # 아이디입력
action.reset_actions()
driver.find_element_by_css_selector('.CwaK9').click() # 다음클릭
문제발생
다음버튼을 누를 순 있으나 진행이 불가함
로그인할 수 없습니다. 브라우저 또는 앱이 안전하지 않을 수 있습니다. 자세히 알아보기다른 브라우저를 사용해 보세요. 이미 지원되는 브라우저를 사용 중이면 화면을 새로고침한 후 로그인을 다시 시도해 보세요.
자동화 테스트 SW로 제어되는 브라우저라 안됨
시행착오
A. 크롬 설정초기화를 했으나 안됨
구글 로그인, 비밀번호 입력 후 다음버튼입력하기
time.sleep(2) # 소요시간 예상 텀주기
driver.find_element_by_css_selector('.whs0nd.zHQkBf').send_keys('비밀번호') # 비밀번호 입력
driver.find_element_by_css_selector('.CwaK9').click() # 다음버튼클릭
time.sleep(2) # 소요시간을 고려해야 엉뚱한 클래스로 들어가지 않음
로그인 후, 지메일로 들어가기
driver.get('https://mail.google.com/mail/u/0/?tab=wm&ogbl#inbox')
time.sleep(2)
편지쓰기클래스를 활용한 편지쓰기
driver.find_element_by_css_selector('.T-I.J-J5-Ji.T-I-KE.L3').click()
time.sleep(1)
실행결과화면
위와 같은 새 메일 창이 뜨면, 다른 키 쓰지 않고 바로 수신자 입력이 가능하다.
즉, 액션체인으로 다룰수있다는것!
고로 action키를 써서 코드를 작성하자
수신자메일 입력하기
action.send_keys('수신자메일').key_down(Keys.TAB).key_down(Keys.TAB).send_keys('제목입니다.').key_down(Keys.TAB).send_keys('내용은 여기에').perform()
# tab키 2번 쓰기.
왜 tab이냐? tab키를 2번 누르면 수신자 입력란에서 제목 입력란으로 넘어가기 때문
# 이어서 send_keys('')를 통해 바로 제목입력하기
actionChain이 가능하기에 바로 이어서 쓴 것
# tab키를 누른 후 내용 작성 후 실행하기
번외 : 네이버 자동 로그인 하기
'● 크롤링, 자동화 > Selenium' 카테고리의 다른 글
[beautifulsoup, selenium] 인스타그램 이미지 크롤링해보자! (1) | 2021.05.04 |
---|---|
[잔재미] 셀레니움 이미지 크롤링 (1) | 2021.02.08 |
selenium 자동화 수집하기 (0) | 2020.11.08 |
Anaconda 다운로드 받기, Jupyter Notebook 설치하기 (0) | 2020.11.08 |
네이버 카페 크롤 - 01 로그인 하기 (0) | 2020.08.30 |