Selenium Python 中的父元素方法


Selenium 是一款強大的工具,能夠自動化 Web 瀏覽器,而 Python 廣泛用於測試自動化。Selenium 的一個重要方面是它能夠透過多種方法查詢網頁上的元素,而這可以使用父元素方法輕鬆實現,該方法是一種非常有價值的技術。

透過識別和操作與特定目標元素關聯的父元素,測試人員可以有效地與網頁的特定部分進行互動。本文深入探討了 Selenium Python 中的父元素方法,闡明瞭其優勢和實際實施策略。

什麼是 Selenium Python 中的父元素方法?

在我們深入細節之前,讓我們先弄清楚我們所說的父元素是什麼意思。在 HTML 中,元素巢狀在其他元素中,形成一個層次結構。父元素是指包含您要與其互動的目標元素的直接容器元素。透過識別和操作父元素,我們可以控制其子元素並有效地導航網頁的結構。

父元素方法的優勢

以下是使用父元素方法的一些優勢:

  • 改進的元素定位器 − 僅基於元素的單個屬性來定位元素可能具有挑戰性,尤其是在複雜的網頁上。透過使用父元素方法,您可以建立一種更強大、更可靠的元素定位方法。您可以利用網頁的結構而不是依賴於唯一屬性,從而使您的定位器不易受到更改的影響。

  • 簡化的測試維護 − Web 應用程式是動態的,如果測試嚴重依賴於特定的元素屬性,則頁面結構的更新或修改可能會破壞您的測試。透過使用父元素方法,您的測試對更改更具彈性。如果子元素的屬性發生更改,您仍然可以使用其父元素可靠地找到它。

  • 有效地與相關元素互動 − 有時,您可能需要與共享公共父元素的一組元素進行互動。例如,考慮一個具有多行多列的表格。透過識別父元素(表格),您可以輕鬆訪問並與子元素(表格單元格或行)進行互動,而無需複雜的定位器。

實現策略

在 Selenium Python 中實現父元素方法涉及以下幾個關鍵步驟:

  • 定位父元素 − 首先確定包含您要與其互動的目標元素的父元素。檢查網頁的 HTML 結構以找到一個合適的父元素,該元素包含所需的部分。

  • 使用 XPath 或 CSS 選擇器 − 確定父元素後,您可以使用 XPath 或 CSS 選擇器以程式設計方式找到它。這兩種方法都提供了靈活且強大的方法來導航網頁的結構並找到所需的元素。

  • 對子元素執行操作 − 定位父元素後,您可以使用 Selenium 豐富的函式集與子元素進行互動。無論是點選按鈕、填寫表單還是提取資料,您都可以對父元素中的目標元素執行各種操作。

  • 處理動態元素 − 請記住,網頁通常包含動態內容,這些內容會根據使用者互動或伺服器響應而動態更改。在使用父元素方法時,請確保您的程式碼可以透過在父元素中實現適當的等待條件或使用動態定位器來處理此類動態元素。

Selenium Python 中父元素方法的程式示例

這是一個使用 Selenium Python 中的父元素方法以及維基百科網站的程式碼示例:

示例

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

# Step 1: Initialize the WebDriver
driver = webdriver.Chrome("C:/Users/Tutorialspoint/chromedriver.exe")  # Replace with the appropriate path to chromedriver.exe

# Step 2: Navigate to the Wikipedia page
driver.get("https://en.wikipedia.org/wiki/Python_(programming_language)")

# Step 3: Locate the parent element
# Wait for the parent element to be present before interacting with it
parent_element = WebDriverWait(driver, 10).until(
   EC.presence_of_element_located((By.ID, "mw-content-text"))
)

# Step 4: Perform actions on child elements within the parent element
# Locate and perform actions on the child elements within the parent element
child_elements = parent_element.find_elements(By.TAG_NAME, "p")

# Print the text of each child element
for child_element in child_elements:
   print(child_element.text)

# Step 5: Close the browser
driver.quit()

輸出

執行程式

  • 確保已安裝 Selenium Python 包。如果沒有,可以使用 pip 安裝:

pip install selenium
  • 下載與 Chrome 瀏覽器版本相容的 ChromeDriver 可執行檔案,並向 `webdriver.Chrome()` 建構函式提供路徑。將 "C:/Users/Tutorialspoint/chromedriver.exe" 替換為您系統上 chromedriver 可執行檔案的相應路徑。

  • 程式碼示例設定為導航到 Python 程式語言的維基百科頁面。您可以將 URL 替換為任何其他維基百科頁面或您想要抓取的任何網頁。

  • 該示例使用 ID 為 "mw-content-text" 的父元素。您可以根據需要修改父元素選擇器。

  • 然後,程式碼示例使用 `find_elements()` 方法和標籤名稱 "p" 查詢父元素中的所有子元素(段落)。它列印每個子元素的文字,但您可以修改此部分以對子元素執行任何所需的操作。

  • 執行指令碼,它將導航到指定的網頁,定位父元素並與子元素(段落)進行互動。

結論

總之,Selenium Python 中的父元素方法是與網頁特定部分互動的強大技術。透過定位父元素並訪問其子元素,測試人員和開發人員可以有效地提取資訊、執行操作和自動化 Web 互動。

憑藉處理動態內容和導航複雜 Web 結構的能力,此方法在 Web 抓取、測試和自動化任務中證明了其價值。

更新於:2023年7月24日

2K+ 瀏覽量

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告