在Selenium Python中定位單個元素


Selenium是一個強大的自動化工具,可以對網頁瀏覽器進行程式設計控制。它對於自動化各種功能的web應用程式(包括測試)至關重要。在網頁上查詢專案是Selenium的一個基本功能。在本文中,我們將瞭解如何使用Python查詢特定的Selenium元素。

Selenium簡介

Selenium是一個知名的開源web自動化工具。由於其靈活性,開發者可以使用多種程式語言編寫指令碼,包括Python、Java、C#等。Selenium可以自動化您通常使用瀏覽器執行的操作,例如點選、輸入、選擇和導航。

Selenium的設定

在我們開始查詢元素之前,需要正確設定Selenium。以下是使用pip進行設定的方法:

pip install selenium

Selenium需要特定瀏覽器的驅動程式,因為它會自動化和控制在web瀏覽器中執行的操作。例如,如果您使用Chrome,請從Selenium網站下載ChromeDriver。

在Selenium中定位元素

與網頁互動時,必須識別需要互動的元素。Selenium提供多種查詢這些元素的方法,包括按ID、名稱、類名、連結文字和其他標準。Selenium包含專門用於單元素互動和資訊提取的方法。

定位單個元素

Selenium提供多種查詢單個元素的方法,例如:

  • find_element_by_id

  • find_element_by_name

  • find_element_by_xpath

  • find_element_by_link_text

  • find_element_by_partial_link_text

  • find_element_by_tag_name

  • find_element_by_class_name

  • find_element_by_css_selector

示例1:find_element_by_id

此函式返回具有相關ID屬性的第一個元素。如果不存在這樣的元素,則會引發NoSuchElementException異常。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_id('element_id')
print(element.text)

示例2:find_element_by_name

此函式使用給定的名稱檢索第一個元素。它們對於表單元素非常有用,因為表單元素通常具有“name”屬性。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_name('element_name')
print(element.text)

示例3:find_element_by_xpath

XPath是一種用於XML文件導航的語言。它提供了一種基於元素屬性(包括ID、名稱等)選擇元素的方法。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_xpath('//div[@class="class_name"]')
print(element.text)

示例4:find_element_by_link_text

此方法檢索與連結文字完全匹配的第一個連結。這在處理具有href屬性的錨點標籤時很有用。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_link_text('Link Text')
print(element.text)

示例5:find_element_by_partial_link_text

此方法返回僅部分匹配連結文字的連結。當連結文字很長,而您只記得一部分時,這很有用。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_partial_link_text('Part of Link Text')
print(element.text)

示例6:find_element_by_tag_name

此方法檢索具有指定標籤名稱的第一個元素。這在需要訪問通用標籤(如“body”、“head”、“title”等)時很有用。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_tag_name('tag_name')
print(element.text)

示例7:find_element_by_class_name

此方法返回具有相應類名的第一個元素。這是檢索具有類名但沒有id或name屬性的元素的有用方法。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_class_name('class_name')
print(element.text)

示例8:find_element_by_css_selector

此方法返回與CSS選擇器匹配的第一個元素。能夠組合標籤名稱、ID、類名和其他屬性使其成為訪問元素的靈活方法。

from selenium import webdriver

driver = webdriver.Chrome('path_to_chromedriver')
driver.get('https://www.website.com')

element = driver.find_element_by_css_selector('tag#id.class')
print(element.text)

結論

在本文中,我們研究了使用Python Selenium查詢單個元素的方法。Selenium是一個非常強大的工具,在處理web元素時提供了極大的靈活性。它可以自動化幾乎所有在web瀏覽器中可以執行的操作,這對於web應用程式測試和從網站抓取資料等任務非常有用。

請負責任地使用這些工具,並遵守您訪問網站的服務條款。

更新於:2023年7月18日

229 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告