Memo
-
[Selenium] 클릭 시 element not interactable 에러Memo/Python 2023. 1. 17. 16:50
Selenium으로 코드를 작성 중 창을 닫기 위해 x버튼을 클릭해야 하는 상황이였다. 분명 다른 요소와 동일하게 'button' 태그를 가지고 있지만 다음과 같은 에러가 발생하며 클릭이 작동하지 않았다. Message: element not interactable 다행히 검색을 통해 해결 방법을 쉽게 찾을 수 있었다. close = driver.find_element(By.XPATH, '//*[@id="btnLayerClose"]') driver.execute_script("arguments[0].click();", close) Selenium에서 특정 element가 갑자기 클릭이 되지 않을 때 (python) selenium을 이용해서 functional test를 쨔는 도중, 특정 element를..
-
[Python-Telegram-Bot v20.0] 메시지 전송 에러 해결Memo/Python 2023. 1. 13. 16:52
- 23.02.13 파이썬에서 텔레그램 메시지를 보내려면 json을 이용해 api로 전송하는 것을 추천드립니다. 공식 문서를 지원할 뿐만 아니라, 더욱 간결하고 에러 문제가 없습니다. https://l22hs.tistory.com/31 파이썬을 이용해 텔레그램 메시지를 전송하고 싶어, 여느때와 같이 구글링을 시작하였다. 블로그에 친절하게 잘 정리된 글을 보고 'Python-Telegram-Bot' 패키지를 설치하였다. 그러나 블로그에서 알려준 코드대로 작성해보았지만 계속해서 오류가 발생하였다. # Error RuntimeWarning: coroutine 'Bot.send_message' was never awaited 여러 국내 블로그 자료를 뒤져보고, 계속 수정도 해봤지만 끝내 오류가 해결되지 않았다...
-
Crontab에서 Selenium 동작 시 Chrome failed to start 에러 해결Memo/Ubuntu 2023. 1. 8. 21:12
unknown error: Chrome failed to start: exited abnormally Selenium이 사용된 파이썬 소스코드를 쉘에서 직접 실행할 때는 아무런 이상이 없었다가 크론탭에서만 실행하면 위와 같은 에러가 발생하였다. 검색 결과 ChromeDriver 옵션 하나를 추가하여 해결할 수 있었다. options = webdriver.ChromeOptions() options.add_argument('--no-sandbox') [Selenium] unknown error: Chrome failed to start: exited abnormally linux 환경에서 chrome driver 사용시 발생할 수 있는 에러입니다. path, version 모두 맞췄으면 아래 options을..
-
Crontab에서 Python 패키지(모듈)를 찾지 못할 때Memo/Ubuntu 2023. 1. 8. 21:01
.py 파일을 쉘에서 직접 실행 하였을때는 문제가 없지만 크론탭을 통해 실행될 때 소스코드에서 사용한 패키지를 찾지 못하는 경우가 발생하였다. 검색 결과 아래와 같이 크론탭에 파이썬 패키지가 설치된 경로를 지정해 주면 해결할 수 있다. $ sudo vi /etc/crontab PYTHONPATH=/home/ubuntu/.local/lib/python3.10/site-packages Crontab cannot find python module selenium - Raspberry Pi Forums Sun Dec 31, 2017 3:41 pm Hello, I am using a Rasp Pi 3 B and as a beginner with linux I am having trouble with crontab..
-
[Oracle Cloud] Jupyter Notebook 포트 허용(수신 규칙)Memo/Oracle Cloud 2023. 1. 5. 15:41
Oracle Cloud에 Jupyter Notebook을 설치 후 원격 환경에서 웹으로 접속하기 위해서 AWS EC2를 사용할 때와 동일하게 설정을 진행하였다. 수신 규칙에 '8888'번 추가와 'jupyter_notebook_config' 파일을 생성 후 IP 설정 까지 마쳤지만 왜인지 원격 접속이 되지 않았다. 수신 규칙에서 모든 포트를 열어보기도 하고, config에서 아이피와 설정을 이리저리 바꿔보아도 접속되지 않았다.. 계속해서 헤매다 결국 오라클 공식 문서에서 해답을 찾을 수 있었다. 수신 규칙에서 포트를 허용해주는 것 외에도, OS내에서 방화벽 규칙을 업데이트 해주어야 했다. # Ubuntu sudo iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 8888 ..
-
[Ubuntu] Selenium에서 Chromium 브라우저 사용하기Memo/Ubuntu 2023. 1. 5. 12:56
평소 Selenium을 크롬 브라우저 환경에서 사용하였다. 그러나 현재 내가 사용중인 오라클 클라우드는 ARM64 아키텍처로, chrome 사용이 불가능했다. 따라서 Firefox나 Edge, Safari와 같은 다른 브라우저를 사용해야 하는 상황이다. 하지만 나는 크롬이 가장 익숙하기도 하고, 이미 짜둔 코드를 크게 변경하고 싶지 않았다. 그래서 또 열심히 검색을 하다 보니 좋은 정보를 발견할 수 있었다. 바로 Chrome 대신 Chromium 브라우저를 이용하는 것이였다. 하지만 Selenium에서는 공식적으로 Chromium 브라우저를 지원하지 않는다. 여기서 중요한 점은 Chromium을 Chromedriver로 사용할 수 있게 해주는 패키지가 존재한다는 것이다! sudo apt-get insta..
-
[Django] allauth form field label 지우기Memo/Python 2022. 8. 5. 16:17
Django allauth 라이브러리를 이용한 로그인 기능을 구현하던 중 못생긴 로그인 페이지를 수정하게 되었다. 부트스트랩 템플릿을 입히는 과정까지는 문제가 없었으나, ID와 PW를 입력하는 TextField에 'Username: '과 'Password: '라는 label이 따로 붙어 마음에 들지 않았다. 약 한 시간 정도 검색해본 결과 많은 방법들과 코드들이 있었지만 왠지 모르게 잘 적용되지 않았다. 결국 이것 저것 하나씩 해보다 보니 forms.py에 아래와 같은 클래스를 추가하면 몬생긴 label을 지울 수 있었다. class LoginForm(LoginForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) sel..