반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Selenium 셀렉터잡기
- vscode venv 설치
- Uipath 기초
- 파이썬 환경설정
- 가상환경설치
- pywinauto 윈도우
- Uipath 설치방법
- 날짜 정규식
- 파이썬 가상환경 설치방법
- Python
- 파이썬 네이버 로그인
- 네이버 로그인 영수증 해결
- 네이버매물크롤링
- 파이썬 가상환경 설치
- 네이버 로그인 하기
- 네이버커머스API
- uipath 입문
- pycdc.exe
- 네이버 로그인 캡챠해결
- Element is not clickable at point
- 커머스API
- venv 설치
- 파이썬네이버부동산
- 왕초보 파이썬 실행
- selenium
- pycdas.exe
- UiPath
- pywinauto
- 네이버부동산크롤링
- pywinauto 윈도우제어
Archives
- Today
- Total
콘솔워크
selenium 자동화 진행 중 특정 로딩화면이 사라질 때 까지 대기하는 함수 본문
반응형
# 공통 로딩화면
def wait_loading(self):
driver = self.driver
# $x('//div[contains(@class, "blockUI")]')
loading = True
wait_count = 1
self.maximum_wait = 60
self.default_wait = 10
driver.implicitly_wait(1)
try:
loading_screen = driver.find_element(By.XPATH, '//div[contains(@class, "blockUI")]')
except Exception as e:
print(f"loading finished")
driver.implicitly_wait(1)
while loading:
try:
print(f"wait_count: {wait_count}")
loading_screen = driver.find_element(By.XPATH, '//div[contains(@class, "blockUI")]')
wait_count = wait_count + 1
loading = True
if wait_count > self.maximum_wait:
loading = False
# raise UserWarning
raise UserWarning("무한 로딩")
except UserWarning as ue:
print(f"최대 대기시간 {self.maximum_wait}초 초과")
# raise UserWarning
raise UserWarning("무한 로딩")
except Exception as e:
print(f"로딩 완료")
break
finally:
time.sleep(1)
print(f"loading finished")
driver.implicitly_wait(self.default_wait)
WebdriverWait과 EC의 기능만으로는 도무지 해결이 불가능한 로딩화면이 나타났을 때 사용하려고 제작했다.
무한 반복문을 돌면서 loading_screen이 있는지 검색해보고 없다면 종료되는 함수이다.
driver.implicitly_wait(1)을 적용해서 1초마다 해당 webelement를 검색하도록 설정하였고,
self.maximum_wait = 60으로 최대 대기시간을 설정해서 해당 시간이 되면 오류를 발생시키도록 하였다.
loading_screen 부분의 셀렉터만 잘 잡아주면 바로 사용 가능.
해당 코드의 경우에는 XPATH가 '//div[contains(@class, "blockUI")]' 인 로딩화면에 사용했다.
반응형
'프로그래밍 > python' 카테고리의 다른 글
문자열을 메모장으로 저장하는 함수 (0) | 2023.03.27 |
---|---|
데이터프레임에서 특정 열만 추출해서 새로운 데이터프레임으로 만들기 (0) | 2023.03.24 |
[Pyqt5] QPlainTextEdit, QTextEdit (0) | 2023.03.22 |
특정 텍스트가 포함된 web element... (0) | 2023.03.21 |
dataframe의 정보를 클립보드로 복사하는 함수 (0) | 2023.03.17 |