본문 바로가기

728x90

자동화/Selenium

(30)
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가지를 소개하려고 ..
네이버 메모에 짧은 내용 자동화로 작성해서 올리기 저번에 네이버 메일을 해보았는데 이번에는 네이버 메모에다 내용을 작성하여 저장하는 걸 시도해보았습니다. 네이버 메모는 네이버 ID만 있으면 웹, 앱 상관없이 해당 메모를 볼 수 있어서 간단하게 사용할 때 가끔 이용하는데요. 공부할 겸 자동화 시도해보는것도 좋을 거 같아서 선정하였습니다. 자동화 절차 시나리오는 간단하게 작성하였습니다. 메모 URL 이동 네이버 로그인 메모 쓰기 후 저장 로그인 한 후에 좌측 메모 쓰기 버튼을 누르는 코드인데 wait를 같이 추가하여 클릭 가능할 때 바로 클릭될 수 있도록 구현하였습니다. wait = WebDriverWait(driver, 5) wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'btn.write._write_b..
간단한 네이버 메일 자동화로 보내기 (With Selenium, Python) 이번에 해볼 자동화는 네이버 메일 보내기입니다. 네이버 로그인 부터 메일 보내기 성공 화면까지 볼 수 있는 자동화를 구현해보았습니다. 메일 URL로 바로 접근하여 네이버 로그인을 할 수 있게 코드를 작성하였습니다. 모두 ID값을 가지고 있어서 쉬운 코드를 작성할 수 있었습니다. driver.get('https://mail.naver.com') driver.find_element(By.ID, 'id').send_keys(ID입력창) driver.find_element(By.ID, 'pw').send_keys(PW입력창) driver.find_element(By.ID, 'log.login').click() 최대한 시간을 줄이고자 time.sleep보다는 wait를 자주 사용하여 빠르게 시간을 단축할 수 있도..
KFC 설문조사 실행파일로 자동화하여 스마트 코드 확인하기 KFC 설문조사도 자동화로 잘 사용하고 있었는데 코드 pycharm에서 실행하는 방식보다 실행파일이 더 효율적이기 때문에 실행파일로 자동화 할 수 있게 추가 구현하였습니다. 설문조사 코드는 기존에 작성하였던 코드를 활용한 후 실행파일 GUI 부분만 추가 작성하였습니다. https://autoshovel.tistory.com/13 KFC 설문조사 Selenium으로 자동화하기 버거킹 설문조사 외 KFC에서도 영수증을 보면 설문조사 후 무료 세트 업그레이드가 있습니다. 지난번 버거킹 설문조사 자동화에 이어 KFC도 동일하게 자동화하여 편리하게 사용할 수 있게 코드로 autoshovel.tistory.com GUI 환경은 버거킹 때와 동일하게 tkinter 라이브러리를 사용하였으며, 실행파일로 만들기 위해 p..
업비트 코인 시가총액 및 거래대금 목록 자동화로 엑셀에 저장하기 이번에 자동화로 추출해볼 데이터는 코인 시가총액 및 거래대금 목록입니다. 해당 정보는 업비트에 있는 데이터로 전체 코인을 순위별로 엑셀에 저장하는 코드를 작성하였습니다. 시가총액을 보기 위해 탭을 이동하여야 해서 이번에는 By LINK_TEXT 코드로 이동하였으며 가끔 페이지 로딩이 느려서 코드가 실패하는 경우를 방지하기 위해 wait 코드를 추가한 후 전체보기 실행 코드를 작성하였습니다. driver.find_element(By.LINK_TEXT, '시가총액').click() wait = WebDriverWait(driver, 5) wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'LineArticle__MoreLabel'))) driver.find_el..
네이버 주택담보대출 금리 정보 목록 자동화로 한번에 확인하기 집을 구매하기 위해 꼭 확인해야 하는 주택담보대출 금리 정보를 최근에 자주 찾아보게 되는데요. 그 중 네이버에서 제공하는 주택담보대출 금리 정보 목록을 자주 사용합니다. (네이버에서 검색만 하면 확인이 가능하여 편하게 확인이 가능) 자주 보다보니 불편한점이 몇가지 있었는데요. 한 페이지별로 4개 상품만 비교할 수 있고 전체 항목을 보기 위해서는 각 페이지들을 수동으로 확인해야 하기 때문에 전체 상품 데이터를 자동화로 추출하여 한눈에 정리하기 위해 구현해보았습니다. 2023년 2월 현재 기준으로는 13 페이지까지 보이는데 유동적으로 변경될 수 있기 때문에 전체 목록 수를 구하는 코드를 추가하였습니다. (이후 반복문에서 사용) total = driver.find_element(By.CLASS_NAME, '_..
selenium element locator 실행 시간 비교해보기 (class_name vs xpath) selenium 자동화를 구현하면 가장 많이 사용하는게 find_element 일텐데요. find_element 코드를 사용할 때 ID, class, xpath, link_text, name 등 다양하게 사용할텐데 각각의 속도 차이가 있는지 궁금해졌습니다. (자동화에서 코드 실행 시간을 줄일 수 있으면 최고!!) selenium locator 설명을 보면 xpath를 사용할 때 속도가 느려지는 단점이 있다고 설명이 되어 있는데 실제로 차이가 많이 나는지 확인을 해보고 싶어서 간단하게 테스트를 해보았습니다. https://www.selenium.dev/documentation/test_practices/encouraged/locators/ 샘플 URL은 다음 메인홈 (https://daum.net) 을 선..
Selenium Python 웹 자동화시 사용하는 스크롤 동작 유형 4가지 Selenium 웹페이지 자동화를 구현하다보면 스크롤 기능을 자주 사용하게 됩니다. 다양한 스크롤 구현 방법 중 제가 자주 사용하는 방법 4가지를 설명하려고 합니다. 1. execute_script("window.scrollTo(x, y);") JavaScript 형식 코드 중 window.scrollTo 코드를 사용하여 스크롤을 하는 방식입니다. x, y 좌표를 숫자를 통해 원하는 위치로 스크롤을 하거나 document.body.scrollHeight를 y 좌표에 작성시 최하단까지 스크롤을 한번에 할 수 있습니다. 하지만 웹페이지 내 iframe 및 페이지 내 페이지 코드로 작성 등 다양한 경우에서 동작을 하지 않는 단점이 있습니다. (특정 iframe 위치로 이동하여 동작되는 경우도 있는데 안되는 경..

728x90