• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Windows 使用 Python + Selenium 自動控制瀏覽器教學與範例

介紹如何在 Windows 環境下,使用 Python 的 Selenium 模組,撰寫自動控制瀏覽器的指令稿。

安裝 Python 環境

在開始之前,請先確認自己的 Windows 系統中有安裝 Python 的環境,如果沒有的話,請依照 Windows 安裝 Python 程式開發環境的步驟,在自己的 Windows 系統中安裝好 Python 的程式開發環境。

正常來說在安裝完 Python 的環境之後,也會一併安裝好 pip 這個 Python 套件管理工具,如果自己的 Python 環境沒有附帶 pip 的話,亦可依循安裝 Python 的 pip 套件管理工具的步驟,自己另外安裝。

安裝 Selenium

開啟 Windows 的「命令提示字元」,使用 pip 安裝 Python 的 Selenium 套件:

pip install selenium
安裝 Python 的 Selenium 套件
安裝 Python 的 Selenium 套件

執行這一行 pip 的指令之後,就會自動從網路上下載並安裝 selenium 套件,所有相依性套件也會自動安裝起來。

下載 WebDriver

Selenium 需要透過特殊的 WebDriver 才能跟瀏覽器溝通,進行各種控制,而不同的瀏覽器所對應的 WebDriver 也不同,以下是各種瀏覽器的 WebDriver 下載點:

瀏覽器 WebDriver
Chrome ChromeDriver
Edge Microsoft WebDriver
Firefox geckodriver
Safari WebDriver Support in Safari 10

請依照想要控制的瀏覽器,下載對應的 WebDriver 程式,同時請注意瀏覽器與 WebDriver 的版本,如果兩者的版本不同,是不能用的。

下載下來的瀏覽器 WebDriver 不需要安裝,但隨後要跟使用 Selenium 的 Python 指令稿(*.py)放在一起執行,下面有詳細的操作教學。

撰寫 Python 指令稿

準備好 Python 環境與 WebDriver 程式之後,就可以開始撰寫 Python 的指令稿,自動操控瀏覽器了,以下是一個 Hello World 範例,其使用 WebDriver 來控制 Chrome 瀏覽器,打開 Google 首頁:

from selenium import webdriver

# 使用 Chrome 的 WebDriver
browser = webdriver.Chrome()

# 開啟 Google 首頁
browser.get('https://www.google.com/')

# 關閉瀏覽器
# browser.close()

將這段 Python 指令稿儲存至 hello.py,然後跟 Chrome 的 WebDriver 程式放在同一個目錄之下,這樣就可以執行了。

Python 指令稿與 WebDriver
Python 指令稿與 WebDriver

執行時可能會出現 Windows 防火牆的警告訊息,請選擇「允許存取」。

Windows 防火牆訊息
Windows 防火牆訊息

執行之後,會開啟一個新的 Chrome 瀏覽器視窗,這個視窗是由 Python 程式所控制的,在網址列下方會有一行受控制的提示訊息。

Chrome 瀏覽器
Chrome 瀏覽器

如果可以正常開啟這樣的 Chrome 瀏覽器視窗,就表示 Selenium 可以正常運作了,接下來就可以利用 Python 進行各種自動化的操作與測試了。

至於 Edge 與 Firefox 等瀏覽器的 WebDriver 使用方式也都大同小異,只要下載之後跟 Python 指令稿放在一起即可使用。

Google 搜尋

Selenium 可以控制瀏覽器進行各種動作,以下是在 Google 搜尋網頁中輸入關鍵字,進行搜尋的範例:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 使用 Chrome 的 WebDriver
browser = webdriver.Chrome()

# 開啟 Google 首頁
browser.get("https://www.google.com")

# 尋找網頁中的搜尋框
inputElement = browser.find_element_by_name("q")

# 在搜尋框中輸入文字
inputElement.send_keys("Selenium")

# 送出搜尋
inputElement.submit()

# Google 搜尋結果的 XPath
resultLocator = "//a/h3/div"

try:
    # 等待網頁搜尋結果
    WebDriverWait(browser, 10).until(EC.visibility_of_element_located((By.XPATH, resultLocator)))

    # 取得第一頁搜尋結果
    page1_results = browser.find_elements_by_xpath(resultLocator)

    # 輸出搜尋結果
    for item in page1_results:
        print(item.text)

except TimeoutException:
    print('等待逾時!')
Selenium 控制 Chrome 瀏覽器進行 Google 搜尋
Selenium 控制 Chrome 瀏覽器進行 Google 搜尋

使用既有 Profile

如果要使用 Google Chrome 中既有的 Profile 來進行測試,只要在建立 Chrome 的 WebDriver 時加入一些額外的參數,指定要使用的 Profile 即可:

from selenium import webdriver

# 設定參數
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=C:UsersOfficeGuideAppDataLocalGoogleChromeUser Data")
options.add_argument("--profile-directory=Profile 1")

# 使用自訂參數的 WebDriver
browser = webdriver.Chrome(options=options)

# ...

參考資料:Selenium with Python、Medium @NorthBei、子風的知識庫、

分類:Python, Windows

讀者互動方式

引用通知

  1. 讓LINE幫忙提醒PChome口罩可購買狀態 – WIN10系統篇 – 假日工房 DayOff Garage表示:
    2020-09-2621:25:28

    […] ref: Office 指南 […]

    回覆
  2. Python初學者學習筆記EP. 5表示:
    2020-10-1311:28:55

    […] Webdriver:Selenium需要特殊的Webdriver才能和瀏覽器溝通。 […]

    回覆
  3. 如何快速學會 Python 程式語言? – 商智雲股份有限公司表示:
    2022-12-1515:31:45

    […] 第三個例子:使用 Python 進行 Google 搜尋,範例程式取自 Office 指南 […]

    回覆

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide