셀레니움(selenium)

셀레니움의 요소 클릭하는 법 (with python)

유니네 라이브러리 2024. 5. 2. 23:20

셀레니움에서 요소를 클릭하는 법은 크게 3가지가 있다.

  1. driver 객체에서 .click() 사용하는 방법
  2. driver 객체에서 send_keys(Keys.ENTER) 사용하는 방법
  3. driver 객체의 execute_script() 를 활용하는 방법

각각의 사용법은 다음과 같다.

  • driver 객체에서 .click() 사용하는 방법
    클릭 대상인 element 가 모호한 경우 click() 이벤트가 발생되지 않는다.
    버튼과 같은 명확한 element 인 경우 사용하면 된다.

※  셀레니움 개발자 문서 참고 : click()

 

Interacting with web elements

A high-level instruction set for manipulating form controls.

www.selenium.dev

▶ click() 이벤트 예시

#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)

#기본 레이어 닫기 클릭하기
link_selector = '//*[@id="gnb-header"]/div[4]/div/div/button[2]'
mylink = driver.find_element(By.CSS_SELECTOR,link_selector)  
mylink.click()
  • driver 객체에서 send_keys(Keys.ENTER) 사용하는 방법
    셀레니움 개발자 문서 참고 : key 입력
    ※ 셀레니움 개발자 문서 참고 : send-keys

 

Interacting with web elements

A high-level instruction set for manipulating form controls.

www.selenium.dev

 

Keyboard actions

A representation of any key input device for interacting with a web page.

www.selenium.dev

▶ send_keys 이벤트 예시

#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)

#기본 레이어에 있는 닫기 클릭하기
link_selector = '//*[@id="gnb-header"]/div[4]/div/div/button[2]'
#클릭버튼 실행한다.
driver.find_element(By.CSS_SELECTOR,link_selector).send_keys(Keys.ENTER)
  • driver 객체의 execute_script() 를 활용하는 방법
    자바스크립트 코드를 활용하여 클릭 이벤트 발생시킨다.

※ 셀레니움 개발자 문서 참고 : execute script

 

Working with windows and tabs

Windows and tabs Get window handle WebDriver does not make the distinction between windows and tabs. If your site opens a new tab or window, Selenium will let you work with it using a window handle. Each window has a unique identifier which remains persist

www.selenium.dev

▶ execute-script 이벤트 예시

#네이버 쇼핑 메인 호출하기
url='https://shopping.naver.com/home'
driver.get(url)

#기본 레이어 닫기 클릭하기
link_selector = '//*[@id="gnb-header"]/div[4]/div/div/button[2]'
mylink = driver.find_element(By.CSS_SELECTOR,link_selector)
#클릭버튼 실행하기
driver.execute_script("arguments[0].click();", mylink)