728x90
여는 글
앞서 언급했듯 셀레늄에서 CSS_Selector로 선택하기 어려운 개체는 결국 자바스크립트를 사용하게 됩니다.
아울러, 홈페이지내 구축되어있는 자바스크립트를 직접 사용해야 하거나, Return값을 받아야 하는 등 Seleinium만으로는 처리하기 어려운 경우도 종종 있는편이죠. 방법을 알아두면 접근법이 상당히 늘어나니 간단하게라도 알아두는 편이 좋습니다.
PyAutoGui는 셀레늄을 이용하여 웹업무를 자동화 할 때, 빼놓을 수 없는 라이브러리이다. 마우스로 특정 개체를 선택하고, 키보드 입력을 전달하는 등 핵심적인 기능을 수행하다보니 셀레늄과 항상 같이 붙어다니는 편입니다. 그 외에도 파일 불러오기 창을 여는 등 여러 기능이 있으니 배워두면 추후 기성 어플리케이션의 형태로 만드는데 tkinter와 함께 꽤 도움을 받을 수 있을것으로 보입니다.
셀레늄에서의 자바스크립트 사용방법
- 셀레늄 JS 실행명령어 : driver.execute_script(""“스크립트”"")
- 주요하게 사용되는 자바스크립트 예시
- 하위개체의 수 세기 : document.getElementById(“아이디”).childElementCount
- 드롭박스의 옵션 선택하기 : document.getElementById(“아이디”).selectedIndex = “0”
- Return 값 받기 : execute_script(""“return 스크립트”""). return 없이 스크립트를 실행하면 반환값을 받지 못한다.
PyAutoGui 사용법
설치
‘pip install pyautogui’ 을 파이썬 콘솔에서 실행하여 설치한다.
기능1 - 마우스 조작
- 이동
- 현재 마우스의 위치 측정 : pyautogui.position()
- 절대 좌표값에 따라 마우스 이동 : pyautogui.moveTo(X, Y, t) / X, Y - 좌표, t - 소요시간
- 현 지점 기준 상대적 위치로 마우스 이동 : pyautogui.moveRel(X, Y, t) - 시간을 비워두면 즉각 이동. 보통 t값은 랜덤함수를 입력하여 로봇에 의한 추적을 방지함.
- 클릭
- 클릭 : pyautogui.click(clicks = 2, inteval = 2) = 현재 위치 / 특정 개체에서 클릭 실시. 횟수와 간격을 조절가능
- 더블클릭 : pyautogui.doubleclick()
- 특정 지점까지 드래그 : pyautogui.dragTo(X, Y, button=‘left’)
- 현재 위치 기준 상대위치로 드래그 : pyautogui.drag(X, Y, t, button=‘right’) / X, Y값을 상대적인 값으로 입력하며, t초에 걸쳐 이동함
728x90
기능2- 키보드 조작
- pyautogui.typewriter(‘키 이름 혹은 String’) : 'Enter’나 ‘a’, ‘b’, 'c’등은 엔터, a, b, c를 입력하는 효과를 보인다.
- i = pyautogui.locateOnScreen(‘img.png’) : 특정 이미지의 화면상 위치를 찾아냄
- 결과값은 (X위치, Y위치, X크기, Y크기)의 형태로 반납된다.
- 이 함수는 openCV의 설치를 필요로 함(import는 필요없음/pip install opencv-python으로 설치가능)
기능3 - 찾기/참조
- q = pyautogui.center(i) : i개체(변수)의 크기/위치상 중앙부위 좌표값을 변수로 할당한다
- i = pyautogui.locateCenterOnScreen(‘img.png’) : 3, 4번과정 대신, 이미지를 화면에서 찾고, 해당이미지의 중앙부위에 마우스를 위치시킨다.
- pyautogui.screenshot(‘저장할 파일명.확장자’, region=(X좌표, Y좌표, X크기, Y크기) : 지정된 위치에서 일정 크기의 이미지를 잘라내어 특정 파일명 및 확장자로 저장한다.
기능4 - 메시지 박스
- 경고창 : pyautogui.alert(text=’’, title=’’, button=‘확인’) - ‘확인’버튼을 가진 경고창을 출력
- 버튼 선택창 : pyautogui.confirm(text=’’, title=’’, buttons=[‘확인’, ‘취소’]) - ‘확인’, ‘취소’ 버튼을 가진 선택창을 출력. 선택된 버튼을 String으로 반환함
- 텍스트 입력창 : pyautogui.prompt(text=’’, title=’’, default=’’) - ‘확인’, ‘취소’ 버튼 및 입력공간을 가진 텍스트 입력창을 출력. 입력된 텍스트를 반환하나, 취소버튼을 누른경우에는 none을 반환함
- 비밀번호 입력창 : pyautogui.prompt(text=’’, title=’’, default=’’, mask=’*’) - ‘확인’, ‘취소’ 버튼 및 입력공간을 가진 텍스트 입력창을 출력. 비밀번호를 마스킹할 수 있고, 입력된 텍스트를 반환하나, 취소버튼을 누른경우에는 none을 반환함
반응형
'컴퓨터 & 코딩 공부 > 파이썬' 카테고리의 다른 글
파이썬 기초(2) – 문자열, 리스트, 셋 및 클래스 관련 기능 (0) | 2024.04.19 |
---|---|
파이썬 기초(1) - 공통문법, Comprehension, Packing, Decorator (0) | 2024.04.19 |
파이썬 웹자동화 - 셀레늄 및 관련 라이브러리 기본 사용법 (1) | 2024.04.19 |
파이썬 웹 자동화 - 셀레늄 활용을 위한 CSS 선택자 (0) | 2024.04.19 |
파이썬 설치하기 – 파이썬, IDE, LIbrary 설치(winPython, 직접설치) (1) | 2024.04.18 |