Selenium + ChromeDriver

Selenium

Selenium是一個Web的自動化測試工具,最初是爲網站自動化測試而開發的,類型像咱們玩遊戲用的按鍵精靈,能夠按指定的命令自動操做,不一樣是Selenium 能夠直接運行在瀏覽器上,它支持全部主流的瀏覽器(包括PhantomJS,Chrome這些無界面的瀏覽器)。html

Selenium 能夠根據咱們的指令,讓瀏覽器自動加載頁面,獲取須要的數據,甚至頁面截屏,或者判斷網站上某些動做是否發生。python

Selenium 本身不帶瀏覽器,不支持瀏覽器的功能,它須要與第三方瀏覽器結合在一塊兒才能使用。可是咱們有時候須要讓它內嵌在代碼中運行,因此咱們能夠用一個叫 PhantomJS 的工具代替真實的瀏覽器。web

能夠從 PyPI 網站下載 Selenium庫 https://pypi.python.org/simpl...
也能夠用 第三方管理器 pip用命令安裝(windows 環境):pip install selenium
Selenium 官方參考文檔: http://selenium-python.readth...

ChromeDriver

下載ChromeDriverchrome

https://npm.taobao.org/mirror...

找到最新日期的版本,能夠查看notes.txt文檔,選擇支持的Chrome瀏覽器的版本npm

  1. 解壓 chromedriver_win32.zip
  2. 將 chromedriver.exe 移動到 Python安裝目錄下
    (其實放哪均可以,可是須要配環境變量,放Python安裝目錄下省事)

簡單的小介紹

# coding=utf-8
# 導包
from selenium import webdriver
import time

if __name__ == '__main__':

    # 1. 建立瀏覽器對象
    driver = webdriver.Chrome()

    # 2. 發送請求
    driver.get('https://www.baidu.com')

    # 3. 獲取數據
    # data = driver.page_source
    # with open('baidu.html', 'w') as f:
    #     f.write(data.encode('utf-8'))

    # 給搜索框 輸入數據: 數據 必須是unicode
    driver.find_element_by_id('kw').send_keys(u'segmentfault')
    # 而後點擊
    # driver.find_element_by_id('su').click()
    # webdriver 也支持xpath
    driver.find_element_by_xpath('//*[@id="su"]').click()

    time.sleep(3)

    # 瀏覽器有幾個標籤頁
    print driver.window_handles
    
    # 屏幕快照
    driver.save_screenshot('baidu.png')

    # 點擊搜索結果的第一條
    driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()

    # time.sleep(3)

    # 由於點擊以後會打開一個新的標籤,因此須要跳到新的標籤
    # driver.switch_to_window(driver.window_handles[1])

    print driver.window_handles

    # 4. 屏幕快照
    driver.save_screenshot('baidu1.png')
相關文章
相關標籤/搜索