강좌

|  다양한 분야에 다소 전문적인 도움이 되는 강좌들입니다.

조회 수 191 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

안녕하세요? 좋은 아침입니다!


요새 네이버를 비롯하여 다수의 사이트의 로그인 창에서 Selenium의 send_keys를 막아놓은 경우가 있더군요.


저도 아직 확실한 해결책을 찾지 못했지만 요새 삽질해서 얻은 교훈을 적어봅니다.



1. 자바스크립트를 이용하기


대략 아래와 같은 방법을 생각해볼 수 있습니다.



driver.execute_script("document.getElementsByName(패스워드 입력칸의 Name)[0].value=\'" + '패스워드' + "\'")



Stackoverflow에서는 해당 element의 속성을 최대한 removeattribute 하라는 조언도 있더군요.

(특정 속성을 추가하라는 내용도 봤는데 이 방법도 잘 안 되었습니다)


다만 제가 테스트한 사이트에서는 이 방법이 잘 먹히지 않았습니다 ㅠㅠ 

(Stackoverflow에 달린 리플을 봐도 이 방법까지 막아놓은 경우가 많은 것 같더군요)



2. PyAutoGUI를 이용한 Copy & Paste


제가 테스트한 사이트들도 그렇고, 다른 분들의 블로그를 봐도 그렇고


다행히 Pyperclip 등 클립보드 라이브러리를 이용하여 비밀번호를 Copy & Paste 하는 방법은 막아놓지 않았더군요.


아마도 이걸 막아놓으면 일반적인 유저들도 불편하기 때문일 것 같네요 ㄷㄷ



pyautogui.hotkey("ctrl", "v")



간단히 위와 같은 방법으로 할 수도 있고, 


PyAutoGUI를 이용하여 마우스 우클릭 후 방향키와 엔터를 누르는 방법으로 Copy & Paste를 할 수 있습니다.


다만 이 방법은 백그라운드에서는 사용할 수 없습니다.


현재 활성화된 창에서 Copy & Paste가 되기 때문입니다 ㅠㅠ


제가 테스트해보지는 않았지만 headless 모드에서는 Selenium 창이 비활성화되어 있기 때문에 아마도 안 될 것 같네요.



3. Selenium만을 이용한 Copy & Paste


Selenium만으로 Copy & Paste가 가능한지 저도 궁금해서 저도 여러 방법을 시도했는 다음과 같은 방법으로 성공했습니다.



from selenium.webdriver.common.keys import Keys

element.send_keys(Keys.CONTROL, 'v')



Stackoverflow에 os.system("echo %s| clip" % text.strip())을 삽입해야 한다는 답변도 있었는데요.


일단 제가 테스트한 환경에서는 이 부분을 제외하고도 Copy & Paste가 되는 것을 확인하였습니다.


참고로 아래와 같은 방법은 잘 되지 않았습니다 ㅠㅠ

 actions = ActionChains(driver)
 actions.key_down(Keys.CONTROL)
 actions.send_keys("c")
 actions.key_up(Keys.CONTROL)



Stackoverflow나 여러 블로그의 글을 보더라도 현재로서는 확실한 해결책이 없는 것 같더군요.


제가 나중에라도 더 확실한 방법을 알게 되면 댓글을 남기도록 하겠습니다 ^^


그럼 오늘도 좋은 하루 되세요!



강좌

다양한 분야에 다소 전문적인 도움이 되는 강좌들입니다.

List of Articles
번호 게시판 제목 글쓴이 날짜 조회 수
공지 [중요] IP 변경이 있습니다. 20 마스터 2019.09.20 1459
공지 [중요] 고정 IP에 문제가 발생한 것 같습니다. 1 마스터 2019.09.20 1186
공지 회원 전용 페이지가 생겼습니다. 15 file 마스터 2018.03.20 9749
227 강좌 파이썬 Pillow 라이브러리를 이용하여 이미지의 배경을 transparent하게 만들기 11 file 이니스프리 2019.08.04 294
226 강좌 나무위키의 서술 중 법률용어의 사용에 있어 바로잡아야 할 부분 file 이니스프리 2019.07.17 121
225 강좌 [유튜브] Youtube API를 이용하거나 또는 이용하지 않고 채널ID를 추출하는 방법 1 file 이니스프리 2019.07.16 212
224 라이츄 과학츄 24. 메탄올과 에탄올 듀오였츄 14 file title: 노란 장미왕뚠뚠돈까스라이츄 2019.07.07 373
» 강좌 Selenium에서 send_keys를 막아놓은 경우 해결책 이니스프리 2019.07.04 191
222 Pr의 웹디자인 가이드 웹디자인 第三강 <head> 上 1 file PRASEOD- 2019.05.03 381
221 강좌 [2019 고1] 통합사회_ 내멋대로 정리 끝 {협스} 16 협스 2019.04.26 697
220 네모의 코딩 팁 0. Git 명령어 (작성중) 7 네모 2019.04.26 608
219 강좌 [제르엘의 인문사회 산책] 세계사 맛보기 강의. 오리엔트 문명과 진시황 7 file title: 애프터 이펙트갱생제르엘 2019.04.10 363
218 강좌 [제르엘의 인문사회 산책] 0. OT 7 file title: 애프터 이펙트갱생제르엘 2019.04.04 328
217 Pr의 웹디자인 가이드 웹디자인 第二강 html5로 구조 짜보기 7 file PRASEOD- 2019.03.25 366
216 라이츄 과학츄 23. 완충용액이츄 2 file title: 노란 장미왕뚠뚠돈까스라이츄 2019.03.24 613
215 강좌 간단한 JS 강의 #2 2 도토리묵 2019.03.20 293
214 Pr의 웹디자인 가이드 웹디자인 第一강 홈페이지는 어떻게 만드는건가 4 PRASEOD- 2019.03.19 444
213 강좌 간단한 JS강의 #1 4 도토리묵 2019.03.02 421
212 라이츄 과학츄 22. 혈액입니츄 1 file title: 노란 장미왕뚠뚠돈까스라이츄 2019.02.05 539
211 강좌 [아미나] Basic Youtube Title Widget 1.0에서 처음에 엑박으로 뜨는 경우의 해결책 3 file 이니스프리 2018.12.15 418
210 강좌 아미나의 회원 이미지와 관련하여 x2 3 file 이니스프리 2018.12.10 367
209 라이츄 과학츄 21. 혈액형입니츄 12 file title: 노란 장미왕뚠뚠돈까스라이츄 2018.12.08 741
208 강좌 현행 저작권법 제30조(사적이용을 위한 복제)에 대하여 - 음원 다운로더의 처벌과 관련하여 6 이니스프리 2018.12.07 633
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
/ 12
서버에 요청 중입니다. 잠시만 기다려 주십시오...