code

用 Selenium 獲取網站標籤: 結合 Python 的簡單操作流程

Selenium 是一個自動化測試工具。它可以在瀏覽器中模擬人類操作,可用於測試網站或應用程式。

Selenium 可以支援多種瀏覽器,包括 Chrome、Firefox、Safari 和 Internet Explorer。

它還支援多種程式語言,例如 Python、Java、C# 和 Ruby

它可以讓您撰寫腳本,在瀏覽器中模擬使用者的操作,例如點擊鏈結、輸入文字或提交表單。

您可以使用 Selenium 建立回測腳本,以驗證您的網站或應用程式是否正常運作。

Selenium 主要分為三個部分:

  • Selenium WebDriver:這是一個 API,可以讓您與瀏覽器進行互動。它支援多種瀏覽器,並可以在多種程式語言中使用。
  • Selenium IDE:這是一個 Firefox 擴充套件,可以讓您在 Firefox 中直接建立和執行測試腳本。
  • Selenium Grid:這是一個工具,可以讓您在多台電腦上執行測試,以支援分散式測試。

    Selenium 是非常實用的測試工具,可以幫助您確保您的網站或應用程式能夠正常運作。

    如何安裝 selenium 套件

    可以使用 pip 安裝 Selenium 套件。pip 是 Python 的套件管理工具,可以輕鬆安裝和管理 Python 套件。

    要安裝 Selenium,請在命令提示字元中輸入以下命令:

    pip install selenium
    

    這會安裝 Selenium 套件和所有的相依套件。

    如果您希望安裝特定版本的 Selenium,可以使用以下命令:

    pip install selenium==3.141.0

    在上面的命令中,3.141.0 是 Selenium 的版本號碼。

    您可以在 https://pypi.org/project/selenium/ 上查看最新版本的 Selenium。

    在安裝 Selenium 之前,請確保您已安裝 Python 和 pip。

    如果您還沒有安裝這些軟體,可以在 https://www.python.org/ 上下載並安裝 Python,pip 會隨 Python 一起安裝

    如何安裝ChromeDriver

    要使用 Selenium 在 Chrome 中執行測試,您需要先安裝 ChromeDriver。

    有幾種方法可以安裝 ChromeDriver:

    下載安裝檔並手動安裝:您可以在 https://chromedriver.chromium.org/downloads 上下載 ChromeDriver 的安裝檔,

    並使用適當的軟體(例如 WinZip 或 7-Zip)解壓縮安裝檔。

    解壓縮後,您可以在命令提示字元中執行安裝程式,或者直接將 ChromeDriver 目錄加入系統路徑中。

    使用 pip 安裝:如果您已經安裝了 pip,您可以使用以下命令安裝 ChromeDriver:

    pip install chromedriver-binary

      這會安裝並設定 ChromeDriver 的系統路徑,以便您可以在 Python 程式中使用它。

      使用軟體管理工具安裝:如果您使用的是 Linux 或 macOS 系統,您可以使用軟體管理工具(例如 apt 或 brew)安裝 ChromeDriver。

      例如,您可以使用以下命令在 Ubuntu 中安裝 ChromeDriver:

      sudo apt install chromium-chromedriver

      在 macOS 中,您可以使用以下命令安裝 ChromeDriver:

      brew cask install chromedriver

      Selenium 獲取網站標籤

      Chrome

      以下是一個使用 Selenium WebDriver 在 Python 中測試 Google 搜尋功能的範例,並且使用的是 chrome 瀏覽器

      from selenium import webdriver
      from selenium.webdriver.common.keys import Keys
      
      # 建立 Chrome 瀏覽器物件
      driver = webdriver.Chrome()
      
      # 使用瀏覽器物件前往 Google 首頁
      driver.get("http://www.google.com")
      
      # 找到搜尋欄位元素並輸入搜尋字串
      search_box = driver.find_element_by_name("q")
      search_box.send_keys("Selenium WebDriver")
      
      # 送出搜尋
      search_box.send_keys(Keys.RETURN)
      
      # 等待瀏覽器載入完成
      driver.implicitly_wait(10)
      
      # 檢查是否出現 "Selenium WebDriver" 這個字串
      assert "Selenium WebDriver" in driver.title
      
      # 關閉瀏覽器
      driver.close()

      首先,程式碼使用 webdriver.Chrome() 建立了 Chrome 瀏覽器物件,並使用 driver.get() 方法前往 Google 首頁。

      接下來,程式碼使用 driver.find_element_by_name("q") 找到搜尋欄位元素,

      並使用 search_box.send_keys("Selenium WebDriver") 在搜尋欄位中輸入搜尋字串,

      隨後使用 search_box.send_keys(Keys.RETURN) 送出搜尋。

      接著,程式碼使用 driver.implicitly_wait(10) 等待瀏覽器載入完成。

      最後,程式碼使用 assert "Selenium WebDriver" in driver.title 來檢查是否出現 “Selenium WebDriver” 這個字串

      ,如果斷言成功,則表示測試通過。

      之後再使用 driver.close() 關閉 Chrome 瀏覽器。

      Firefox

      以下是一個使用 Selenium WebDriver 在 Python 中測試 Google 搜尋功能的範例,並且使用的是 Firefox 瀏覽器:

      from selenium import webdriver
      from selenium.webdriver.common.keys import Keys
      
      # 建立 Firefox 瀏覽器物件
      driver = webdriver.Firefox()
      
      # 使用瀏覽器物件前往 Google 首頁
      driver.get("http://www.google.com")
      
      # 找到搜尋欄位元素並輸入搜尋字串
      search_box = driver.find_element_by_name("q")
      search_box.send_keys("Selenium WebDriver")
      
      # 送出搜尋
      search_box.send_keys(Keys.RETURN)
      
      # 等待瀏覽器載入完成
      driver.implicitly_wait(10)
      
      # 檢查是否出現 "Selenium WebDriver" 這個字串
      assert "Selenium WebDriver" in driver.title
      
      # 關閉瀏覽器
      driver.close()

      程式碼使用 driver.find_element_by_name("q") 找到搜尋欄位元素,

      並使用 search_box.send_keys("Selenium WebDriver") 在搜尋欄位中輸入搜尋字串,

      隨後使用 search_box.send_keys(Keys.RETURN) 送出搜尋。

      接著,程式碼使用 driver.implicitly_wait(10) 等待瀏覽器載入完成。

      最後,程式碼使用 assert "Selenium WebDriver" in driver.title 來檢查是否出現 “Selenium WebDriver” 這個字串,

      如果斷言成功,則表示測試通過。

      之後再使用 driver.close()關閉 Firefox 瀏覽器

      發佈留言

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