在 Selenium 中查找組件的 6 種最簡單方法

已發表: 2022-05-19

在 selenium 中查找組件

Selenium 中的組件在測試應用程序或軟件時起著重要作用; 這些是 Selenium 自動化腳本的構建塊。 但是,真正的挑戰是在需要時在網頁上找到這些組件。

幸運的是,有多種方法可以在 Selenium 中找到這些組件。 您可以找到特定用途的特定組件,這些組件可幫助您在自動化測試中進行不同的數據加載活動

這些被稱為定位器或定位技術,只不過是強大的命令。 使用這些定位器,您可以快速找到可以執行多個用戶操作的 GUI 組件。

但是,在研究在 Selenium 上查找組件的不同方法之前,了解這些組件是什麼以及它們是如何工作的至關重要。

Selenium 中的組件

對網站進行回歸測試或自動數據加載的最佳工具無疑是 Selenium。 簡單來說,我們可以說 Selenium 是一個通過程序或命令控制 Web 瀏覽器的強大工具。

它適用於每個瀏覽器,並允許您在每個關鍵操作系統上進行操作。 它的腳本由多種編程語言組成,如 Python、Java、C# 等。此外,它還使用其他幾種語言,在這裡我們將使用非常流行的語言 Python 進行簡單理解。

Selenium 擁有四個主要元素——Selenium IDE、Selenium RC、Selenium Web Driver 和 Selenium GRID。

Selenium 在全球範圍內的機械化測試人員已經存在了一段時間。

讓我們來看看硒的四種主要元素——

  • 硒 IDE

Selenium IDE(也稱為集成開發環境)是 Selenium Suite 中的關鍵設備之一。 它是用於 Selenium 實驗的完整集成開發環境 (IDE)。 它作為 Firefox 添加以及 Chrome 擴展程序強制執行。

Selenium IDE 的另一個方面是它能夠捕獲、重寫和調試實際試驗。 它以前被認為是 Selenium Recorder。 Selenium-IDE 最初由 Shinya Kasatani 創立,並於 2006 年贈予 Selenium 項目。

Selenium IDE 早些時候沒有得到適當的維護,並於 2018 年開始存在。

文字可能會自行捕獲和手動修改,提供自動完成幫助和快速切換命令的能力。 腳本以 Selenese 報告,Selenium 是一種特殊的試用腳本語言。

Selenese 提供用於在瀏覽器中執行活動的命令(按鏈接,選擇替代項)並從出現的頁面獲取數據。

  • Selenium RC(遙控器)

Selenium Remote Control (aka RC) 是一個由 Java 語言組成的 Web 服務器,它通過 HTTP 通過瀏覽器批准命令。 RC 使使用多種編碼語言為 Web 應用程序編寫計算機化測試變得更加容易,從而使 Selenium 能夠很好地集成到流行的組件測試框架中。

Selenium 程序目前為 PHP、Python、Ruby、.NET、Perl 和 Java 等多種語言提供消費者驅動程序,以簡化論文測試。 此外,您可以使用帶有 JavaScript 的 Java 驅動程序(通過 Rhino 引擎)。

發布 HTML 測試試驗需要一個 selenium RC 服務器的示例——這意味著每次相似性運行都必須有多個擴展塢。 儘管如此,對於 Java/PHP 測試用例,只需要一個 Selenium RC 樣本就可以無休止地運行。

  • Selenium 網絡驅動程序

Selenium WebDriver 是 Selenium RC 的繼承者。 Selenium WebDriver 遵守命令(以 Selenese 或通過客戶端 API 交付)並將它們提供給瀏覽器。 這是通過特定於瀏覽器的瀏覽器驅動程序強制執行的,該驅動程序將命令傳遞給瀏覽器並獲得結果。

幾乎所有瀏覽器驅動程序都可以打開和訪問瀏覽器應用程序(例如 Mozilla Firefox、Google Chrome、Internet Explorer、Safari 甚至 Microsoft Edge); 此外,HtmlUnit 瀏覽器驅動程序通過使用無頭應用程序 HtmlUnit 來模擬瀏覽器。

Selenium WebDriver 不需要唯一的服務器來強制執行測試。 相反,WebDriver 會快速打開瀏覽器插圖並對其進行調節。 儘管如此,您可以使用 Selenium Grid 和 WebDriver 在遠程網絡上執行測試。

在可行的情況下,WebDriver 使用原始操作系統級別的功能而不是基於瀏覽器的 JavaScript 建議來運行應用程序。 這繞過了原始命令和 JavaScript 命令之間存在適度差異的問題,包括安全法規。

  • 硒網格

Selenium Grid 是一個服務器,它使實驗能夠使用在隔離設備上運行的 Web 瀏覽器樣本。 集線器記錄訪問瀏覽器樣本(WebDriver 節點)的服務器,並允許測試使用這些樣本。

Selenium Grid 允許在多個設備上進行相應的測試,並集中管理不同的瀏覽器版本和瀏覽器組合(而不是每個單獨的測試)。

掌握對孤立瀏覽器實例的測試的熟練程度有助於在各種機器上傳播測試規律,並在運行於多個平台或操作系統的應用程序中進行測試。 在並非所有用於測試的應用程序都可以在同一平台上運行的情況下,另一個是有益的。

在 Selenium 中查找組件的 6 種最簡單方法

方法只不過是 Selenium 中的定位器; 這些定位器是強大的命令,可用於輸入和定位 Selenium 中的 GUI 元素。 此外,您可以使用這些命令來執行多個用戶操作。

在 Selenium 中查找 GUI 組件的 6 種簡單方法列表是 -

  • ID
  • 姓名
  • 鏈接文本
  • 部分鏈接文本
  • 標籤名稱
  • 班級名稱

在 Selenium WebDriver 中使用上述定位器,您可以通過“findElement/findElements”語法定位組件。

1.身份定位器

ID 是在 Selenium 上查找組件的最有效和最快的定位器選項。 ID 是標識任何組件的唯一編號。 ID 定位器調用document.getElementById() ,使其成為最快的定位器選項。 許多瀏覽器優化了 iD。

2.名稱定位器

在 ID 定位器到達名稱定位器之後,如果任何 Web 元素都沒有 ID 屬性,這將是有益的。 但是,名稱定位器的問題在於它們不可能每次都是唯一的。 如果至少有兩個或多個名稱,Selenium 將選擇第一個匹配的元素來執行任何操作。

3. 鏈接文本定位器

這是一個基於情境的定位選項。 LinkText 定位器通過By.linkText()方法使用它們的確切鏈接文本訪問鏈接 但是,可能存在兩個或多個關聯具有確切鏈接文本的情況; 在這種情況下,Selenium 會選擇與鏈接匹配的第一個元素來執行任何操作。

4.部分鏈接文本定位器

這又是一個基於情境的定位選項。 Partial LinkText Locator 通過By.partialLinkText()方法使用部分鏈接文本訪問鏈接 如果您指定具有多個匹配項的部分鏈接文本,則將訪問所有匹配項中的第一個匹配項。

5. 標籤名定位器

TagName Locator 是 DOM 結構的一部分,在這個結構中,Selenium 網頁上的每個元素都是通過按鈕標籤、輸入標籤、錨標籤等標籤定義的。每個標籤都有多個屬性,如名稱、值類、ID , ETC。

6.類名定位器

當使用 class 屬性定義元素時,ClassName Locator 是定位它們的最佳方法之一。 類屬性最好的部分是它不需要像 ID 一樣是唯一的。

在 Selenium 中查找組件的其他方法

除了在 Selenium 上查找組件的六種最突出的方法外,還有另外兩種方法。 這些方法沒有那麼突出,但使用起來很有效。

1.XPath

XPath 表達式提供了可靠的方式來定位 Web 組件,但它也是所有定位器中最慢的。 XPath 引擎在不同瀏覽器之間是不一致的,因為它們在每個瀏覽器中都不同。 例如,如果您在 Chrome 中編寫 XPath 代碼,它將無法在 IE 上運行。

2. CSS 選擇器

如果 Web 組件缺少 ID 或名稱,找到它們的最佳方法是使用 CSS 選擇器。 與 XPath 相比,CSS 更快、更易讀。 CSS 兼容所有流行的瀏覽器並提高性能。 當您想在多個瀏覽器上測試我們的應用程序時,CSS 變得很有用。 CSS 最適合 IE,因為 XPath 是無功能的 IE。

使用 LambdaTest 開始您的 Selenium 自動化測試

在 Selenium 中查找組件需要完全了解組件在網頁上的位置以及所有可能的方法來做出正確的方法。 我們列出了六種最佳方式來做到這一點; 但是,您可能會發現更多,但我們上面列出的內容足以找到所有 Selenium 組件。 Selenium 使用 LambdaTest 框架變得容易,所有重要組件都觸手可及。

LambdaTest 是一個強大的雲測試平台,將幫助您提高自動化測試技能。 它使用 Selenium、Cypress、Playwright 和 Puppeteer 等頂級自動化測試工具在 3000 多種桌面和移動瀏覽器上提供自動化瀏覽器測試,並使用集成的開發人員工具進行調試,這也將幫助您學習高級自動化測試工具。 它還擁有來自 130 多個國家/地區的超過 600,000 多名忠實用戶。

Selenium 與 LambdaTest 是您提升測試之旅所需的唯一一對。