Selenium 심화

몽자비루 ㅣ 2023. 4. 25. 08:48

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# webdriverWait을 사용하기 위한 import
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import time

browser = webdriver.Chrome()
browser.get("<https://naver.com>")
# 로그인 버튼을 클릭 후 이동
elem = browser.find_element(By.CLASS_NAME,"link_login")
elem.click()

# id, pw 입력 레이아웃으로 이동 후 입력
browser.find_element(By.ID, "id").send_keys("naver_id")
browser.find_element(By.ID, "pw").send_keys("password")

# 로그인 버튼 클릭
browser.find_element(By.ID, "log.login").click()

# 로딩을 위해 잠시 기다림
time.sleep(3)
browser.implicitly_wait(3)
# webDriverWait 을 통해 browser을 최대 10초동안 기다림 (10초가 넘어가면 에러)
# ID가 id 인 element를 찾으면 EC가 True를 리턴함.
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "id")))

# 새로운 id/pw입력을 위해 입력창을 초기화함
browser.find_element(By.ID, "id").clear()
browser.find_element(By.ID, "id").send_keys("shop2930")

# html 정보 출력
print(browser.page_source)

browser.quit()
  • browser.find_element(by, value).동작 : 찾은 element의 동작을 진행
  • find_element.clear()을 통해 값을 초기화할 수 있다.
  • 브라우저 작동 시, 가끔 브라우저가 속도를 따라가지 못할 때가 있다.
    • time.sleep(n) : n초만큼 대기.
    • browser.implicitly_wait(n)
      ㄴ n초만큼 대기(시간이 지나면 에러발생)
      ㄴ 로딩 완료 시 남은시간을 무시하고 다음문장 시작
    • WebDriverWait(browser,n).until(EC.presence_of_element_located((by, value)))
      ㄴ n초만큼 대기(시간이 지나면 에러발생)
      ㄴ until 안의 element발견 시, 남은 시간을 무시하고 다음문장 시작.

'python > python_selenium' 카테고리의 다른 글

Selenium 활용2  (0) 2023.04.29
Selenium 활용1  (0) 2023.04.26
Selenium 기본  (0) 2023.04.25
CSV 기본  (0) 2023.04.23
BeautifulSoup4 활용3  (0) 2023.04.23