Selenium 自動化瀏覽器定位元素的8種策略

更新於 發佈於 閱讀時間約 4 分鐘

Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。

在定位元素時,WebDriver 提供對這 8 種傳統定位策略的支援。

1. 類別名稱

HTML 頁面網頁元素可以有類別屬性。我們可以使用 Selenium 中提供的類別名稱定位器來識別這些元素。

driver = webdriver.Chrome()
driver.find_element(By.CLASS_NAME, "information")

2. CSS 選擇器

CSS 是用來設定 HTML 頁面樣式的語言。我們可以使用 CSS 選擇器定位策略來辨識頁面上的元素。如果元素有 id,我們可以將定位器建立為 css = #id。否則,我們遵循的格式為 css =[屬性=值]。我們將使用 CSS 為「fname」文字方塊建立定位器。

driver = webdriver.Chrome()
driver.find_element(By.CSS_SELECTOR, "#fname")

3. ID 屬性

我們可以使用網頁中元素的 ID 屬性來定位它。一般來說,網頁上每個元素的 ID 屬性都應該是唯一的。我們將使用它來辨識「姓氏」欄位。

driver = webdriver.Chrome()
driver.find_element(By.ID, "lname")

4. 名稱屬性

我們可以使用網頁中元素的 NAME 屬性來定位它。一般來說,網頁上每個元素的 NAME 屬性都應該是唯一的。我們將使用它來辨識「電子報」核取方塊。

driver = webdriver.Chrome()
driver.find_element(By.NAME, "newsletter")

5. 連結文字

如果我們要定位的元素是連結,我們可以使用連結文字定位器來辨識網頁上的連結。連結文字是連結顯示的文字。在共用的 HTML 片段中,我們有一個可用的連結,讓我們看看我們要如何定位它。

driver = webdriver.Chrome()
driver.find_element(By.LINK_TEXT, "Selenium Official Page")

6. 部分連結文字

如果我們要定位的元素是連結,我們可以使用部分連結文字定位器來辨識網頁上的連結。連結文字是連結顯示的文字。我們可以傳遞部分文字作為值。在共用的 HTML 片段中,我們有一個可用的連結,讓我們看看我們要如何定位它。

driver = webdriver.Chrome()
driver.find_element(By.PARTIAL_LINK_TEXT, "Official Page")

7. 標籤名稱

我們可以使用 HTML 標籤本身作為定位器,來辨識網頁上的網頁元素。從上面共用的 HTML 片段中,讓我們使用其 HTML 標籤「a」來辨識連結。

driver = webdriver.Chrome()
driver.find_element(By.TAG_NAME, "a")

8. XPath 表達式

HTML 文件可以視為 XML 文件,然後我們可以使用 XPath,這將是遍歷以到達感興趣的元素的途徑,來定位元素。XPath 可以是絕對 XPath,它是由文件的根目錄建立的。例如 /html/form/input[1]。這將傳回男性選項按鈕。或者 XPath 可以是相對的。例如 //input[@name='fname']。這將傳回名字文字方塊。讓我們使用 XPath 為女性選項按鈕建立定位器。

driver = webdriver.Chrome()
driver.find_element(By.XPATH, "//input[@value='f']")


留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Chih-Yuan Yip的沙龍 的其他內容
JavaScript (簡稱 JS) 是具有一級函數的輕量級、直譯式或即時編譯的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 Node.js 等。由於 JavaScript 語法上的一些缺點,軟體工程師們又設計出了 CoffeeScript、TypeScript 和
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
什麼是 CSS 預處理器 CSS 預處理器是一種工具,使用專門的語法來生成 CSS 樣式表。市面上有許多 CSS 預處理器可供選擇,它們通常會提供一些純 CSS 中沒有的功能,例如變數、混入、巢狀選擇器等。這些功能可以使 CSS 結構更易讀、更易於維護,並提高開發效率。 為什麼使用 CSS 預處
JavaScript (簡稱 JS) 是具有一級函數的輕量級、直譯式或即時編譯的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 Node.js 等。由於 JavaScript 語法上的一些缺點,軟體工程師們又設計出了 CoffeeScript、TypeScript 和
Ruby on Rails 是一個使用 Ruby 語言編寫的開源 Web 應用程式框架。 PostgreSQL 是一個強大、開源的物件關聯式資料庫系統,擁有超過 35 年的活躍開發歷程,並以其可靠性、功能強大性和效能而享有盛譽。 PostgreSQL 提供許多特定資料類型,以下是 Rails 支
什麼是 CSS 預處理器 CSS 預處理器是一種工具,使用專門的語法來生成 CSS 樣式表。市面上有許多 CSS 預處理器可供選擇,它們通常會提供一些純 CSS 中沒有的功能,例如變數、混入、巢狀選擇器等。這些功能可以使 CSS 結構更易讀、更易於維護,並提高開發效率。 為什麼使用 CSS 預處
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
seo怎麼做?關鍵字優化排名第一頁seo教學課程推薦下班後要怎麼斜槓人生找到更多賺錢機會?seo怎麼做seo自學,seo意思,seo是什麼,seo優化,seo教學,seo怎麼做,seo自學ptt,seo課程,seo排名價格,seo課程推薦,seo課程dcard,seo課程費用
Thumbnail
在今天的數字時代,網路不僅僅是資訊的來源,更是企業發展和個人品牌建立的關鍵所在。然而,無論你是管理自己的網站還是在數位行銷領域工作,若未能掌握搜索引擎優化(SEO)的精髓,你將面臨被淹沒在網路浪潮中的風險。 SEO不僅是提升網站排名的技術,更是通往持久流量和高質量訪客的大門。每一次的搜尋,背後都有
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
在當今以 SEO 搜尋引擎優化為主導的數位行銷時代中,有效地進行關鍵字管理和佈局已成為網站操作人員不可少的策略之一,若有適合的關鍵字規劃工具作為輔助,一定能夠為網站排名帶來相當大的幫助。本文將除了說明 SEO 對網站的重要性,也將介紹 6 款常用的 SEO 工具,幫助大家在關鍵字規劃上事半功倍!
下載: https://chromedriver.com/download#stable 選擇對應版本下載 如果不能執行就檢查一下權限,賦予執行的權力 例如: chmod +x /usr/local/bin/chromedriver (位置請自行變更)
Thumbnail
工欲善其事,必先找關鍵字分析工具:常見的關鍵字分析工具: Google Ads 關鍵字規劃工具、Ubersuggest、Ahrefs、Search Console 和 Google Trends …這些工具都是用於收集關鍵字數據和分析的工具,它們各自有不同的優點和缺點。以下是這些工具的比較:
Thumbnail
在網路時代,SEO(搜尋引擎優化)已經成為網站提升曝光度和吸引用戶的重要手段。然而,隨著使用者行為的不斷演變,掌握使用者行為學習成為制定SEO策略的關鍵。以下是一些關於SEO最佳實踐的思考和建議。 1. SEO是什麼? SEO即搜尋引擎優化,是通過改進網站內外部結構、內容優化等手段,提升網站在搜
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
seo怎麼做?關鍵字優化排名第一頁seo教學課程推薦下班後要怎麼斜槓人生找到更多賺錢機會?seo怎麼做seo自學,seo意思,seo是什麼,seo優化,seo教學,seo怎麼做,seo自學ptt,seo課程,seo排名價格,seo課程推薦,seo課程dcard,seo課程費用
Thumbnail
在今天的數字時代,網路不僅僅是資訊的來源,更是企業發展和個人品牌建立的關鍵所在。然而,無論你是管理自己的網站還是在數位行銷領域工作,若未能掌握搜索引擎優化(SEO)的精髓,你將面臨被淹沒在網路浪潮中的風險。 SEO不僅是提升網站排名的技術,更是通往持久流量和高質量訪客的大門。每一次的搜尋,背後都有
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
在當今以 SEO 搜尋引擎優化為主導的數位行銷時代中,有效地進行關鍵字管理和佈局已成為網站操作人員不可少的策略之一,若有適合的關鍵字規劃工具作為輔助,一定能夠為網站排名帶來相當大的幫助。本文將除了說明 SEO 對網站的重要性,也將介紹 6 款常用的 SEO 工具,幫助大家在關鍵字規劃上事半功倍!
下載: https://chromedriver.com/download#stable 選擇對應版本下載 如果不能執行就檢查一下權限,賦予執行的權力 例如: chmod +x /usr/local/bin/chromedriver (位置請自行變更)
Thumbnail
工欲善其事,必先找關鍵字分析工具:常見的關鍵字分析工具: Google Ads 關鍵字規劃工具、Ubersuggest、Ahrefs、Search Console 和 Google Trends …這些工具都是用於收集關鍵字數據和分析的工具,它們各自有不同的優點和缺點。以下是這些工具的比較:
Thumbnail
在網路時代,SEO(搜尋引擎優化)已經成為網站提升曝光度和吸引用戶的重要手段。然而,隨著使用者行為的不斷演變,掌握使用者行為學習成為制定SEO策略的關鍵。以下是一些關於SEO最佳實踐的思考和建議。 1. SEO是什麼? SEO即搜尋引擎優化,是通過改進網站內外部結構、內容優化等手段,提升網站在搜