강좌

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

조회 수 47 추천 수 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
번호 게시판 제목 글쓴이 날짜 조회 수
공지 사이트 정보 등록에 경고로 변경된 분들 참고하세요. 6 마스터 2019.06.19 668
공지 [중요 공지 포함] 사이트가 복구 되었습니다. 40 마스터 2019.06.18 787
공지 호스팅 신청이 다시 가능합니다. 17 마스터 2019.04.18 1794
공지 회원 전용 페이지가 생겼습니다. 15 file 마스터 2018.03.20 7274
226 강좌 나무위키의 서술 중 법률용어의 사용에 있어 바로잡아야 할 부분 file 이니스프리 2019.07.17 25
225 강좌 [유튜브] Youtube API를 이용하거나 또는 이용하지 않고 채널ID를 추출하는 방법 file 이니스프리 2019.07.16 30
224 라이츄 과학츄 24. 메탄올과 에탄올 듀오였츄 14 file title: 포켓몬고-EX레이드 초대장허니버터뚠뚜니라이츄 2019.07.07 84
» 강좌 Selenium에서 send_keys를 막아놓은 경우 해결책 이니스프리 2019.07.04 47
222 Pr의 웹디자인 가이드 웹디자인 第三강 <head> 上 1 file PRASEOD- 2019.05.03 235
221 강좌 [2019 고1] 통합사회_ 내멋대로 정리 끝 {협스} 16 협스 2019.04.26 466
220 네모의 코딩 팁 0. Git 명령어 (작성중) 6 네모 2019.04.26 376
219 강좌 [제르엘의 인문사회 산책] 세계사 맛보기 강의. 오리엔트 문명과 진시황 7 file title: 애프터 이펙트제르엘 2019.04.10 266
218 강좌 [제르엘의 인문사회 산책] 0. OT 7 file title: 애프터 이펙트제르엘 2019.04.04 274
217 Pr의 웹디자인 가이드 웹디자인 第二강 html5로 구조 짜보기 6 file PRASEOD- 2019.03.25 259
216 라이츄 과학츄 23. 완충용액이츄 2 file title: 포켓몬고-EX레이드 초대장허니버터뚠뚜니라이츄 2019.03.24 368
215 강좌 간단한 JS 강의 #2 2 도토리묵 2019.03.20 219
214 Pr의 웹디자인 가이드 웹디자인 第一강 홈페이지는 어떻게 만드는건가 2 PRASEOD- 2019.03.19 350
213 강좌 간단한 JS강의 #1 2 도토리묵 2019.03.02 289
212 라이츄 과학츄 22. 혈액입니츄 1 file title: 포켓몬고-EX레이드 초대장허니버터뚠뚜니라이츄 2019.02.05 411
211 강좌 [아미나] Basic Youtube Title Widget 1.0에서 처음에 엑박으로 뜨는 경우의 해결책 3 file 이니스프리 2018.12.15 343
210 강좌 아미나의 회원 이미지와 관련하여 x2 3 file 이니스프리 2018.12.10 296
209 라이츄 과학츄 21. 혈액형입니츄 12 file title: 포켓몬고-EX레이드 초대장허니버터뚠뚜니라이츄 2018.12.08 632
208 강좌 현행 저작권법 제30조(사적이용을 위한 복제)에 대하여 - 음원 다운로더의 처벌과 관련하여 6 이니스프리 2018.12.07 437
207 강좌 그누보드/아미나에서 게시글의 날짜를 최종수정일로 변경하고, 목록스킨 및 위젯을 최종수정일 순으로 정렬하기 2 file 이니스프리 2018.11.11 2059
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
/ 12
서버에 요청 중입니다. 잠시만 기다려 주십시오...