
한 챕터의 강의를 전부 수강하고 나면, 다음 챕터 강의를 누를 수 있는 element가 새롭게 뜨는 줄 알았다. 그래서 last-child에 해당하는 강의 수강 버튼만 누르게 했다.
하지만 화면을 열자마자 강의 수강 버튼 전부 나오는 방식이라 에러를 수정했다. last-child로 총 강의 개수를 알아낸 뒤, 이 수만큼 for 문을 돌렸다. 예를 들어 총 강의의 수가 n 개 이면, 1부터 n까지 cur로 인자를 받아왔다. 그리고 cur에 해당하는 강의 회차의 수강 버튼을 누르도록 했는데, 만약에 진도율이 100% 라면 continue 시켜줬다.
한 챕터의 강의가 끝났을 경우, '챕터에 있는 총 강의 개수'와 '현재 강의 번호'가 같다는 것을 확인했다. 이를 활용하여 한 챕터의 강의가 종료됐다는 것을 확인한 뒤 현재 켜져 있는 강의 창을 닫고 window를 전환하는 기능을 추가하였으나 제대로 작동하지는 않았다. Except 때문인 것 같은데, 강의를 모두 수강했음에도 진도율이 갱신되지 않았다. 따라서 챕터에 있는 총 강의 개수만큼 for 문을 돌리는 방식으로 변경하였다.
문제는 그게 아니었다. 진도율 갱신은 '1. 진도율에 맞게 강의 클릭하기' 단계의 문제였다. 강의 수강이 100%인데도 계속 듣고 있어서 그다음 진도가 안 나가진 것이다. 알고 보니 진도율에 해당하는 text를 추출해야 하는데 element를 추출하여 비교했기 때문이었다. 이를 바로잡으니 문제가 해결됐다.
퀴즈가 나오면 직접 퀴즈를 풀 때까지 기다려야 한다. 즉, 퀴즈가 나오면 일시적으로 자동화 기능을 멈추고 수동으로 하는 기능이 추가돼야 한다. 이는 input()을 받아서 해결할 수 있다. 퀴즈가 나왔을 시에 try - except에 걸러지게 된다. 따라서 except에 대한 예외 처리로 input()을 통해 아무 키나 입력이 들어오면 다음으로 넘어가도록 하면 된다.
참고 영상
한 챕터의 강의가 이어지다가 중간에 퀴즈가 나오면, try-except로 처리할 수 있다. 하지만 강의 처음부터 퀴즈가 나오면 이 부분도 예외 처리해 줘야 한다. 퀴즈가 나올 때에는 강의 시간이 안 나오는 점을 확인했고, 이를 이용해 try-except 문을 만들어 해결하였다.
추후에 Python tkinter을 이용해서 퀴즈가 나올 시에 팝업창을 띄운 뒤, 확인 버튼을 누르면 다음 강의로 넘어가는 방법으로 바꿀 것이다. 다양한 파이썬 GUI 프레임워크 중에서도 Tkinter를 고른 이유는 기능이 적지만 간단한 GUI를 쉽게 만들 수 있기 때문이다.
블로그 이전 전 원글 주소