파이썬 - selenium으로 원하는 웹페이지 클릭하는 방법

셀레니움으로 원하는 항목 클릭하기

 

이번 시간에는 셀레니움을 통해서 원하는 항목을 클릭하는 방법을 알아보겠습니다.

 

셀레니움 기본 사용법은 지난 포스팅을 참고하시면 좋습니다.

2022.08.27 - [Programming/Python] - 파이썬 웹사이트 크롤링 하기 - 4. Selenium 사용하기

 

파이썬 웹사이트 크롤링 하기 - 4. Selenium 사용하기

이번 시간에는 이어서 셀레니움을 통해 크롤링 하는 방법을 알아보겠습니다. 셀레니움 준비하기 먼저 셀레니움을 쓰기 위해서는 크롬 드라이버를 다운받아야 합니다. 이 때 크롬 버전 확인이

remake.tistory.com

먼저 셀레니움에서 클릭을 사용하기 위해서는 2가지 방법이 있습니다.

 

  • find_element로 찾아서 클릭하는 방법
  • 원하는 위치를 클릭하는 방법

Find_element로 원하는 항목을 찾아서 클릭하는 방법

저번 시간에 배운것처럼 기본적인 항목을 불러오고 이번시간에는 options을 통해서

 

셀레니움에 관한 설정을 한다음 클릭하는 것을 배워보겠습니다.

 

options 중 최대화와 시크릿 모드는 아래의 옵션을 통해서 실행 가능합니다.

options.add_argument('--start-maximized')  : 최대화
options.add_argument('incognito')  : 시크릿모드로 실행

 

저번시간에 배운것처럼 클릭하고자 하는 항목을 찾고 copy Xpath를 하면 됩니다.

etc-image-0

그리고 아래와 같이 코드를 찾으면 됩니다.

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()


options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36")
#options.add_argument("--window-size=1920x1080")
options.add_argument('--start-maximized')
options.add_argument('incognito')

browser = webdriver.Chrome('C:\python\chromedriver.exe', options=options) 
browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)


browser.get("https://remake.tistory.com/16")
time.sleep(7)

elem = browser.find_element(By.XPATH, '//*[@id="header"]/h1/a]')
if elem.is_enabled():
    elem.click()

그리고 이제 위치로 클릭하는 것은 위의 방법과 유사한데요.

 

마우스 포인터 위치로 클릭하기

 

마우스 포인터 위치로 클릭하기 위해서는 action_chains 패키지를 활용해야 합니다.

 

from selenium.webdriver.common.action_chains import ActionChains

 

즉 ActionChains를 불러온다음 move_by_offset을 통해 위치를 이동시키면 됩니다.

from selenium.webdriver.common.action_chains import ActionChains

ac = ActionChains(browser)
ac.move_by_offset(0, 350)
ac.click()
ac.perform()

이때 좌표는 아래와 같은 마우스 좌표 추적기를 통해서 좌표를 따시면 됩니다.

https://xsylphid.tistory.com/6

 

마우스 좌표 추적기 2010 Rev2

예전에 만들었던 마우스 좌표 추적기 입니다. 이번에 기회에 디자인과 코딩을 새롭게 바꾸었습니다. 항상 위 기능도 추가하여 다른프로그램이 실행중이여도 좌표을 알수 있습니다.

xsylphid.tistory.com

etc-image-1

그럼 잘 사용하시기 바랍니다.