본문 바로가기
대학원 공부/programming language

Python : Selenium의 Webdriver

by 월곡동로봇팔 2020. 4. 21.

Webdriver는 여러가지 버전이 존재한다.

 

내가 이번에 쓴 driver는 chromedriver로 https://www.seleniumhq.org/docs/03_webdriver.jsp

 

Selenium WebDriver — Selenium Documentation

Fetching a Page The first thing you’re likely to want to do with WebDriver is navigate to a page. The normal way to do this is by calling “get”: driver.get("http://www.google.com"); driver.Url = "http://www.google.com"; driver.get "http://www.google.com" d

www.seleniumhq.org

여기 selenium.org 에서 여러가지 driver로 내가 쓰고 싶은 driver를 다운 받으면 된다.

 

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0

# Create a new instance of the Firefox driver
driver = webdriver.Firefox()

# go to the google home page
driver.get("http://www.google.com")

# the page is ajaxy so the title is originally this:
print driver.title

# find the element that's name attribute is q (the google search box)
inputElement = driver.find_element_by_name("q")

# type in the search
inputElement.send_keys("cheese!")

# submit the form (although google automatically searches now without submitting)
inputElement.submit()

try:
    # we have to wait for the page to refresh, the last thing that seems to be updated is the title
    WebDriverWait(driver, 10).until(EC.title_contains("cheese!"))

    # You should see "cheese! - Google Search"
    print driver.title

finally:
    driver.quit()

 

다음은 예제 파일이며 실제로 이런 형식으로 driver를 쓴다.

 

그 중에서 driver.find_element는 자주 사용하는 tool이다.

 

ID, class_name, tag_name, name, link_text, paritial_link_test, css, xpath 등등 내가 가지고오고자 하는 element안에

option을 준 부분이 존재하면 그 부분을 긁어온다.

 

또한 find_element로 긁어온 부분을 send_keys를 통해서 실제로 우리가 마우스를 통해서 입력하는 행위가 가능하다.

 

 

앞으로 selenium으로 실제로 동적인 crawling을 할 때, webdriver을 쓴다.

그리고 이를 유용하게 쓰기 위해 find_element_~,  send_keys를 사용한다.

댓글