selenium 동적 조작 기능 정리

0. selenium 동적 조작 기능의 필요성 

: 구글 드라이브를 통해 웹페이지에 들어가는 것만으로는 selenium의 기능을 충분히 활용할 수 없다. 동적페이지는 드라이브의 스크롤 위치, 클릭 여부 등에 따라 작동하는 HTML 정보가 다르기 때문에 웹페이지 내에서의 이동, 웹페이지 간의 이동을 자유롭게 조작할 수 있어야만 웹페이지에 위치한 필요한 정보를 수집 가능하다. 

✓조작하고자 하는 대상을 지정하는 방법

#대상으로 선언하고자 하는 코드 예시
<input type="text" name="name 값" id="id 값" />
#대상을 선정하는 코드 작성 예시
element = driver.find_element(By.ID, "id 값")
element = driver.find_element(By.NAME, "name 값")
element = driver.find_element(By.XPATH, "//input[@id='id 값']")
element = driver.find_element(By.CSS_SELECTOR, "input#id 값")

 

1. 드라이브 동적 조작 기능 정리

1. input 입력란 내용 기입  

elem = driver.find_element(BY.NAME, "NAME 값")

#기존에 채워진 정보 삭제 (비워있을 경우 쓰지 않아도 무관)
elem.clear()
#입력란에 내용 기입
elem.send_keys("입력하고자 하는 내용")
#엔터 키 입력 (elem.click()으로 대체 가능)
elem.send_keys(Keys.RETURN)

2. 버튼 클릭  

#클릭 대상 선언
elem = driver.find_element(BY.CSS_SELECTOR, 'CSS_SELECTOR 값'
#대상 클릭
elem.click()

 

3. 스크롤 이동  

# 웹페이지 제일 하단으로 이동
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 특정 높이까지 이동하고자 할 때는 아래와 같이 입력 (해당 위치 먼저 찾고 1000 대신 기입)
driver.execute_script("window.scrollTo(0, 1000)")

4. Drag & Drop  

# 드래그 대상 선언
element = driver.find_element(By.NAME, "source")
# 드롭할 대상 선언
target = driver.find_element(By.NAME, "target")

from selenium.webdriver import ActionChains

# 드래그&드롭 작업 진행
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()

5. 이전 페이지, 이후 페이지로 이동  

# 이전 페이지로 이동
driver.back()
# 이후 페이지로 이동
driver.forward()

 

+ Recent posts