일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- 영어
- 딥러닝
- nodejs
- 오라클 디비
- 노드
- 머신러닝
- db
- Programming
- JavaScript
- 비지니스영어
- 도커
- node.js
- 자바
- Java
- 오라클
- 파이썬
- Spring Framework
- oracle
- SAP
- SAP ABAP
- Oracle DB
- 자바스크립트
- sap mm
- ABAP
- SAP ERP
- 유럽여행
- Mac
- IT
- Python
- Today
- Total
JIHYUN JEONG
Mac(맥) / Selenium(셀레늄)네이버 로그인 캡챠(CAPTCHA)문제 해결 본문
Mac(맥) / Selenium(셀레늄)네이버 로그인 캡챠(CAPTCHA)문제 해결
StopHyun 2019. 10. 25. 22:09
Selenium(셀레늄)으로 로그인 할 경우 캡챠(CAPTCHA)가 아래처럼 발생한다.
검색해본결과 Windows는 아래 두 곳을 참고하면 해결이 되는 듯 하다.
- https://neung0.tistory.com/34
하지만 우리 Mac(맥)유저는 복사 붙여 넣기 기능이 Ctrl + v 가 아니라
Command + v 이다.
위 두곳을 참조하여 열심히 핵심코드인 아래 부분을 열심히 했는데 안되다.
[참고소스]
ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
[수정한 내소스]
ActionChains(self.driver).key_down(Keys.COMMAND).send_keys('v').key_up(Keys.COMMAND).perform()
열심히 공식 문서를 읽어봐도 위랑 똑같다.
운이 좋은 건지 모르겠는데 아래 문구를 찾았다. 자기는 Mac + Firefox를 사용해서 됫단다.
https://stackoverflow.com/questions/25215007/selenium-python-actionchains-doesnt-work
크롬드라이버를 쓰고 있었는데 Firefox를 다운 받아서 시도해보기로 했다. 아래 경로에서 다운 받으면 된다.
https://github.com/mozilla/geckodriver/releases
주의 사항: 최신 v0.26.0은 카탈리나가 지원 되지 않으니 참고하기 바란다.
나는 0.26.0 밑에 있는 버전을 다운 받은 후 압축을 풀었다.
geckodriver를 /usr/local/bin에 넣어준다.(Shift + Command + G 를 눌러서 이동할 폴더 지정)
아래 두 모듈을 꼭 설치해 준다.
pip install pyperclip
pip install selenium
소스는 아래와 같다.
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
|
import time
from selenium import webdriver
import pyperclip
driver = webdriver.Firefox(capabilities=None, executable_path='/usr/local/bin/geckodriver')
def copy_input(xpath, input):
driver.find_element_by_xpath(xpath).click()
ActionChains(driver).key_down(Keys.COMMAND).send_keys('v').key_up(Keys.COMMAND).perform()
user_id = 'user_id'
user_pw = 'user_password'
driver.implicitly_wait(3)
copy_input('//*[@id="id"]', user_id)
copy_input('//*[@id="pw"]', user_pw)
driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/input').click()
|
잘된다. 하하하하하 :) 맥(Mac) 쓰시는 분들 네이버 로그인 시 Chrome driver는 아무리 해도 안됩니다 ㅠㅠ 우리 필요하면 Firefox를 씁니다.
(혹시 그래도 안되시는 분은 Firefox를 다운로드 해보세요.https://www.mozilla.org/ko/firefox/new/)
FIrefox는 잘되서 다행이네요.
도움이 되셨다면 커피한잔 어떤가요? 아니 광고라도 클릭 부탁드립니다 :) 도움이 됫길 바라며
'Information Technology > Web' 카테고리의 다른 글
[CSS] Google Fonts/구글 폰트 적용 (0) | 2018.12.16 |
---|---|
[요약] HTTP 완벽가이드 웹은 어떻게 동작하는가, 1장 HTTP (0) | 2018.12.05 |
MIME type/MIME type 목록(list) (0) | 2017.09.07 |
HTTP 상태코드/HTTP 에러코드(Error code) (0) | 2017.09.06 |
웹 어플리케이션 (WAS) (0) | 2012.07.22 |