본문 바로가기

728x90

자동화

(40)
AWS 인스턴스 환경 세팅 절차 Selenium 자동화로 구현하기 테스트를 하다보면 가끔 국내 환경 외 국외 환경을 봐야 하는 경우가 있습니다. (미국, 일본, 대만 등..) 이럴때 AWS 무료 인스턴스 환경을 세팅하여 간단하게 확인 후 다시 종료를 하는 작업을 반복하는데요. 이걸 자동화로 구현하면 괜찮을 거 같아서 구현 시도해보았습니다. (예전에 환경 세팅 후 종료하지 않아서 4만원인가 결제했던 아픈 기억이 떠오릅니다 ㅠㅠ) AWS EC2 URL로 진입 후 최대창으로 변경합니다. 최대창으로 변경하지 않으면 추후 버튼이 우측이 아닌 하단에서 노출되어 스크롤 하는 동작을 줄이기 위해 변경하였습니다. driver.get('https://console.aws.amazon.com/ec2/v2/home') driver.maximize_window() time.sleep(2) 로..
Pytest로 자동화 테스트 결과 확인하기 (With PyCharm) Python에서 제공하는 프레임워크 중 테스트 목적으로 사용할 수 있는 Pytest가 있습니다. Pytest를 사용하면 함수별로 테스트 자동화 결과를 확인할 수 있어서 유용하게 사용할 수 있습니다. PyCharm을 사용하면 더 편리하게 사용할 수 있기 때문에 Pycharm 사용을 추천합니다. PyCharm 라이브러리 추가 화면에서 pytest를 검색해서 설치합니다. 라이브러리 추가하는 절차는 이전에 설명한 글이 있어서 공유드립니다. https://autoshovel.tistory.com/3 Python 라이브러리 사용하기 (With PyCharm) Python 라이브러리를 사용하기 위해 pip로 해당 라이브러리를 설치해야 하는데 Pycharm 툴을 사용하면 편리하게 설치가 가능합니다. Pycharm 내 ..
Selenium 텍스트 입력창 지우는 방법들 (Clear, Keys..) Selenium 자동화 코드 작성 중 자주 사용하는 코드가 있는데 바로 텍스트 입력된 내용 삭제하는 코드입니다. 텍스트를 입력한 다음 삭제하거나 기존에 입력된 텍스트를 다른 텍스트로 바꾸기 위해 삭제하기도 하는데요. 이 때 사용할 수 있는 코드들을 정리하였습니다. 1. send_keys(Keys.CONTROL, 'a', Keys.BACKSPACE) 키보드 키 중 Ctrl + A 으로 전체 선택 후 BackSpace 키보드 키로 지우는 방법입니다. 컴퓨터 사용시 가장 자주 사용하는 단축키를 참고하여 사용하기 때문에 어렵지 않게 이해할 수 있습니다. Mac 사용자의 경우에는 CONTROL 대신 COMMAND를 사용하시면 됩니다. 테스트를 반복 수행시 간헐적으로 동작하지 않는 단점이 있습니다. Windows ..
Katalon Studio 실행 중 Wrong Syntax Error 발생시 해결법 테스트 자동화 툴인 Katalon Studio를 사용하는 중 Android 연결 기기가 있는데도 Test Case를 실행시키면 Wrong syntax Error로 인해 실행이 실패하는 경우가 있습니다. Mobile Recorder에서는 연결된 기기 목록이 나와서 정상 동작하는데 Test Case만 실행하면 동작하지 않아서 애를 먹었는데요 ㅠㅠ (여기서는 잡히는데 왜..!!!) 열심히 구글링 하던 중 해결방법을 드디어 찾았습니다!! 바로 Project Setting에서 Android 기기를 잡아주는 방법이었습니다. 1. Project > Settings > Desired Capabilities > Mobile > Android에서 원하는 기기를 선택 2. Add 버튼을 눌러 property 하나 생성 3...
Selenium으로 밴드웹 자동 로그인 해보기 Selenium을 사용하여 밴드웹 초기화면에서 로그인 성공까지 자동화를 구현하였습니다. ID가 있는 경우 ID를 우선적으로 사용하였고 없는 경우 Class_name 과 xpath를 적절하게 사용하여 구현하였습니다. 인터넷 환경에 따라 로딩이 느릴 수 있다고 생각하여 동작별로 2초 간격을 추가하였습니다. 로그인 화면은 대부분 비슷하게 구현이 되어있기 때문에 네이버나 다른 사이트 로그인에서도 참고하면 자동 로그인 기능을 사용할 수 있습니다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from webdriver_manager..
Selenium 대기 방식 실행 시간 비교해보기 (Wait, Sleep) Selenium에서 요소를 찾기 위해 시간이 필요하기 때문에 대기 기능을 사용합니다. 이론으로는 장단점을 많이 공부했지만 실행시간이 얼마나 차이 나는지 비교해보기 위해 간단한 코드를 작성하여 테스트하였습니다. 비교대상은 자주 사용하는 대기 기능 3가지입니다. time.sleep Implicit wait Explicit wait 실행 시간을 비교하기 위한 시나리오는 아래와 같으며 각 time은 5초로 설정하고 비교하였습니다. (동일한 시나리오 3번 반복 실행) 네이버 메인 홈으로 크롬 브라우저 열기 (https://www.naver.com) 회원가입 버튼 클릭 약관 모두 동의 후 확인 버튼 클릭 1. time.sleep 가장 편리하게 사용하는 방식이지만 특정 조건 없이 강제로 시간을 소요해서 대기하기 때문..
지역 아파트 순위 자동화로 추출하여 엑셀에 저장하기 (With Python) 이번에 자동화 해 볼 내용은 지역 아파트 순위 목록 추출하여 엑셀에 저장하기 입니다. 부동산에 관심이 많아서 아파트를 많이 보게되는데 이부분을 자동화 공부하면 좋을 거 같아서 시도해보았습니다. 다음 부동산에는 지역 아파트 인기순위를 확인할 수 있는 기능이 있는데 스크롤을 하여 전체 목록을 확인할 수 있는데 이부분을 자동화 해보았습니다. 자동화 시나리오는 아래와 같습니다. 다음 부동산에서 특정 지역 목록 URL 진입 (예: 서울 구로구, 경기 부천시) 우측에 노출되는 아파트 목록 자동화로 추출 추출한 내용 엑셀에 저장 특정 지역 아파트 검색결과를 바로 확인할 수 있는 URL로 진입한 후 sleep 함수를 사용하여 모든 데이터가 노출될 때까지 기다립니다. (wait 기능을 이용할 수 있지만 간헐적으로 모든 ..
Selenium Element Click이 실패할 때 사용할 수 있는 대안 방법들 Selenium를 하다보면 가장 많이 사용하는 동작이 Click입니다. Click를 해야 다음 절차로 넘어갈 수 있기 때문에 꼭 필요한데요. 일반적으로는 click() 방법을 많이 사용하지만 가끔 의도치 않게 다양한 오류가 발생하여 동작이 실패하는 경우가 있습니다. - selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted - selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable 그로 인해 다른 방법들을 대안으로 사용하였는데 Click이 필요할 때 사용했던 4가지를 소개하려고 ..

728x90