댓글 • [7] 을 클릭하면 간단한 회원메모를 할 수 있습니다. VC++60 IP 222.♡.9.215 20-06-08 2020-06-08 15:22:36 / 수정일: 2020-06-08 15:24:57 · 제가 알기론,,, 제가 잘못 알고 있는건지 는. 저도 검색중..ㅠㅠ 가꾸 가꾸 IP 61.♡.53.8 20-06-08 2020-06-08 15:39:19 · @님 밑에 링크가 잘 설명된거 같아요. VC++60 IP 222.♡.9.215 20-06-08 2020-06-08 15:40:03 · @가꾸님 그렇네요..ㅠㅠ coyotek coyotek IP 175.♡.10.61 20-06-08 2020-06-08 15:25:07 · 가꾸 가꾸 IP 61.♡.53.8 20-06-08 2020-06-08 15:38:35 · 더블류 더블류 IP 103.♡.200.25 20-06-08 2020-06-08 15:26:07 · delay 라는 기본 함수는 없는것 같습니다. 구현한다면 그냥 루프로 시간을 보내는것 같고요 프로3 프로3 IP 203.♡.136.170 20-06-08 2020-06-08 15:42:23 · wait 는 말 그대로 '기다리라' 는 뜻입니다. 여기에는 2가지 타입이 있습니다. 바로 implicitly wait 과 explicitly wait 입니다. 하지만 여기서 implicitly wait 과 explicitly wait 를 배우기 전에 time.sleep 을 배우겠습니다. time.sleep 은 물리적인 시간을 기다리는 명령어입니다.
컴퓨터의 사양과 상관없이 무조건 입력한 초가 지나야 다음 동작을 합니다. 그렇기에 적절하게 상황에 따라 사용하면 좋습니다. Implicitly Waitimplicitly wait 는 웹페이지가 로딩 될때까지 기다리고 다음 동작을 합니다. 쉽게 설명하자면, 예를들어 구글 웹페이지를 오픈했는데 웹페이지를 불러올 때까지 최대 implicitly_wait(초) 까지 기다리라는 뜻입니다.
위 예제에서 implicitly_wait(10)을 했는데 10초동안 웹페이지가 로딩될때까지 기다리고 10초가 넘어가면 웹페이지가 로딩이 됐던 안됐던 다음 명령어를 실행하겠다 는 뜻입니다. 이 또한 상황에 적정한 시간을 설정하면 됩니다. time.sleep 과 implicitly_wait가 다른 점은 컴퓨터 성능이 좋아서 웹페이지 로딩하는데 1초가 걸렸습니다. 하지만 time.sleep은 무조건 10초를 기다리고 다음 동작은 하고, implicitly_wait는 1초가 됐을 때 다음 동작을 합니다. Explicitly Waitimplicitly_wait의 경우는 모든 웹페이지가 호출될 때까지 기다리는지만, 컴퓨터 환경(PC성능 또는 서버, 네트워크 등)에 따라 전체가 아닌 일부가 먼저 노출되는 경우가 있습니다. (참고..이것을 동적 DOM이라고 부릅니다.) 예를들어서 implicitly_wait를 사용하여 웹페이지는 1초만에 넘어왔는데 넘어온 웹페이지의 일부분이 자바스크립트로 구현되어 있어서 그 일부분이 화면상에서 렌더링 되느라 비교적 늦게 브라우저에 표시되었다고 가정하면 (ex. 쿠팡 또는 광고 노출) 동작하는데 문제가 발생합니다. 이러한 문제를 해결하기 위해서 explicitly_wait 를 사용합니다. 즉, 내가 설정한 것이 표시가 될때까지 뭐뭐 할때까지 기다려라 라는 의미입니다.
time.sleep 과 implicitly_wait 에는 괄호 안에 초를 사용하였지만, explicitly_wait는 사용하는 방법이 조금 다릅니다. EC.presence_of_element_located 말고 종류가 많이 있습니다.
위 방법 중에서 가장 많이 사용하는 것은 EC.presence_of_element_located 와 EC.element_to_be_clickable 이니 상황에 따라 사용하면 됩니다. 즉, 위 3가지 방법 중 상황에 맞는 것을 자유롭게 사용하시면 됩니다. 참조 : GitHub - grafeen/selenium_ex04 Contribute to grafeen/selenium_ex04 development by creating an account on GitHub. github.com |