본문 바로가기
개발기록/python

[python] Selenium 요소 클릭, 선택 (checkbox, radio button, select box)

by spectrum20 2024. 10. 14.
반응형

Selenium 요소 클릭하기

요소 클릭 (click)

driver.find_element(By.XPATH, 'xpath~~~).click()

 

 

send_keys() 함수로 클릭하기

from selenium.webdriver.common.keys import Keys

driver.find_element(By.XPATH, 'xpath~~~').send_keys(Keys.ENTER)

 

 

해당 요소가 화면에 보이지 않을때, 스크롤을 내려서 요소 찾기

from selenium.webdriver.common.action_chains import ActionChains

element = driver.find_element(By.XPATH, 'xpath~~~')

actions = ActionChains(driver).move_to_element(element)
actions.perform() 
element.click()

 

 

javascript 실행시키기 (execute_script)

# javascript 직접 실행
driver.execute_script("실행시킬 스크립트 코드")

# javascript 클릭 메소드
element = driver.find(By.XPATH, 'xpath~~~')
driver.execute_script("arguments[0].click();",element)

 

 

요소가 로딩될 때까지 기다림 (WebDriverWait)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

#요소가 나올때까지 최대 10초를 기다림
element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )

 

 

특정 텍스트 포함

# 전체 일치 (a태그의 'abc' 문자열)
driver.find_element(By.XPATH,'//*[@id="abc"]//a[text()="abc"]').click()

# 일부 일치 (a태그의 'abc' 문자열)
driver.find_element(By.XPATH,'//*[@id="abc"]//a[contains(text(),"abc")]').click()
# 전체 일치 (a태그의 'abc' 문자열)
driver.find_element(By.XPATH,'//*[text()="abc"]').click()

# 일부 일치 (a태그의 'abc' 문자열)
driver.find_element(By.XPATH,'//*[contains(text(),"abc")]').click()

 

 

check box, radio button, select box 선택

 

check box 체크박스

driver.find_element(By.XPATH, 'xpath~~~').click()

 

 

radio button 라디오버튼

driver.find_element(By.XPATH, 'xpath~~~').click()

 

 

select box 셀렉트박스

from selenium.webdriver.support.ui import Select

select_box = Select(driver.find_element(By.XPATH, 'xpath~~')
select_box.select_by_index(인덱스번호)

 

 

반응형

댓글