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()
'python > python_crawling' 카테고리의 다른 글
| [파이썬] scrapy 기본 사용법 정리 (0) | 2023.01.04 |
|---|---|
| [파이썬] selenium 기본 사용법 정리 (0) | 2023.01.02 |
| [파이썬] BeautifulSoup find와 select 함수 사용법 정리 (0) | 2022.12.28 |
| [파이썬] BeautifulSoup 기본 사용법 정리 (0) | 2022.12.27 |
| [파이썬] Scrapy, Selenium, BeautifulSoup 장단점 비교 (0) | 2022.12.27 |