python selenium에서 send_keys를 대체할 수 있는 방법이 궁금합니다.

조회수 1788회

python selenium 에서 send_keys를 통한 텍스트 입력은 너무 느립니다. 텍스트 파일에서 가져와 한 번에 약 3000byte를 입력해야 하는 작업을 반복하고 있는데, 텍스트에서 복사 붙혀넣기 라던지 등의 빠른 방법이 필요합니다.

구글링을 통해 검색 해보니, 이렇게 자바스크립트에서 사용하는 언어로 하면 빠르게 입력이 된다고 하여

driver.execute_script("document.getElementsByName('query')[0].value=\'" + id + "\'")

진행해보니 비슷하거나 조금 더 빠른 수준입니다.

이렇게 send_keys로 사용하고 있는데 너무 느려 이 부분을 위 처럼 바꾸거나 send_keys를 대체하는 더 빠른 방법으로 바꾸려면 어떻게 하면 될까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 셀레니움을 이용한 방법은 성능 및 리소스의 효율은 포기하고 사용하는 방법입니다.

    성능을 위해서는 requests 를 사용하고 변수를 post 로 넘겨버리면 그만입니다.

    즉 send_keys 로 화면상의 input 객체에 값을 넣어줄 필요 없이 텍스트 파일에서 가져온 문자열을 전송하려는 주소로 requests 모듈을 이용하여 post 로 넘겨주면 됩니다. 이렇게 하는 편이 가장 효율적인 구조입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)