크롬 드라이버 위치
import os
os.getcwd()
셀레니움 단일 요소 찾기 find_element
from selenium import webdriver
from selenium.webdriver.common.by import By
URL= "url"
driver = webdriver.Chrome(excutable_path='chromedriver')
driver.get(url=URL)
driver.find_element(By.name, "name")
driver.find_element(By.ID, "id")
find_element(By.ID, "id")
find_element(By.NAME, "name")
find_element(By.XPATH, "xpath")
find_element(By.LINK_TEXT, "link text")
find_element(By.PARTIAL_LINK_TEXT, "partial link text")
find_element(By.TAG_NAME, "tag name")
find_element(By.CLASS_NAME, "class name")
find_element(By.CSS_SELECTOR, "css selector")
셀레니움 드롭다운 메뉴 값 변경
from selenium.webdriver.support.select import Select
from selenium import webdriver
select1 = Select(driver.find_element(By.XPATH, 'xpath'))
select1.select_by_index(1) # 1번째 방법
select1.selectByValue('HTML option태그 value 속성') # 2번째 방법
select1.selectByVisibleText('Visible Text') # 3번째 방법
frame 변환( switch_to.frame() )
=> iframe은 페이지 안에 삽입 된 또 다른 웹 페이지이다.
일반적인 xpath로 크롤링이 작동하지 않는다면 iframe을 고려해야 한다.
from selenium import webdriver
from selenium.webdriver.common.by import By
driver.switch_to.frame(driver.find_element(By.NAME,"iframe"))
값 보내기 Send_keys()
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver.get("url")
element = driver.find_element(By.name,"name")
element.send_key("보낼 단어")
# Enter key 전달
element.send_key(Keys.ENTER)
element.send_key(Keys.RETURN)
# 단어 입력 + Enter 전달
element.send_key("단어" + Keys.ENTER)
Alert 창 처리하기
driver.find_element(By.ID,"id").click()
driver.switch_to.alert # alert창으로 이동
Alert(driver).accept() # alert창 확인 클릭
alert = driver.switch_to.alert
alert.dismiss() # alert창 취소 클릭
# alert창의 메시지
text = Alert(driver).accept() # 1
mesg = alert.text # 2
driver.quit() # 브라우저 닫기