Selenium WebDriver 中的機器人類:方法、重要性和實現

已發表: 2021-05-02

Selenium Web 驅動程序腳本使用 Java 函數來自動化桌面彈出窗口和瀏覽器,而無需將這些函數作為 Web Driver API(應用程序編程接口)的 selenium 包的一部分,而是作為 Java API AWT(抽象窗口工具包)的一部分.

進一步了解這是哪個功能以及它如何在 JAVA 中工作並自動化功能不是很有趣嗎? 這個 Java 函數被稱為“機器人類”。 本文介紹了機器人類的概念,它的實現方法,重要性,在 selenium 中的實現,以及它在本文中的局限性。

目錄

什麼是機器人類?

Java AWT 包在 Robot 類中包含一個 Robot Java。 Robot 類的主要目的是自動化測試 Java 實現並自動模擬實時鼠標和鍵盤操作。 它可以很容易地與現有的自動化框架集成,有助於擴大其覆蓋範圍。

它廣泛用於 Selenium 自動化測試,以控制鍵盤和鼠標,同時與 OS(操作系統)窗口(如打印或下載彈出窗口)以及本機應用程序(如計算器和記事本)交互。 由於 Selenium Webdriver 無法處理此類彈出窗口和應用程序,因此引入了 Java V.1.3 內置機器人類。

實現機器人類的方法

機器人類可以使用鍵盤功能和鼠標功能輕鬆實現。 實現機器人類需要很少的方法來幫助輕鬆執行測試腳本,例如 KeyPress()、KeyRelease()、MouseMove()、MousePress()、MouseRelease() 和 KeyEvent()。

  • 鍵盤功能用於模擬各種鍵盤鍵及其操作。 public void KeyPress (int keycode) 函數用於按下輸入參數鍵。 公共 void KeyRelease (int keycode) 函數在 keyPress 函數之後釋放輸入參數鍵。
  • 鼠標功能用於模擬各種鼠標操作。 公共 void mouseMove (int x, int y) 函數根據 x 和 y 的輸入坐標在屏幕上移動鼠標指針。 public void mouse press (int buttons) 函數模擬類似於 keyPress 函數的鼠標按下操作。

Selenium 中機器人類的重要性

  • 模擬和處理鍵盤和鼠標事件
  • 幫助在 Selenium Web 驅動程序中上傳/下載文件
  • 有效處理彈出窗口
  • 在 Selenium Web 驅動程序中使用Robot 類時輕鬆上傳文件
  • 與現有自動化框架輕鬆集成

另請閱讀: Selenium 項目理念和主題

在 Selenium 中實現機器人類

Selenium 中機器人類生成本地系統輸入事件以自動化測試並生成自運行演示。 它還創建了控制鼠標和鍵盤所需的其他應用程序。 引入機器人類以克服 Web 驅動程序在處理操作系統彈出窗口方面的限制。 它增強了自動化框架的實用功能。

selenium 中的 Web 應用程序使用應用程序的定位器並確定網頁的位置以進行相應的操作。 在某些情況下,在自動化windows操作系統的同時,需要處理windows pop-ups和windows authentication pop-ups。 正如前面在 selenium 中提到的,Robot 類執行這些職責。 儘管它不會自動執行 Windows 操作,但它可用於完成此類任務。

Selenium 實現步驟中的機器人類

  • 將瀏覽器驅動程序鏈接到ChromeDriver並指定路徑。
  • 獲取相應的網頁 URL(統一資源定位器),並在導航時出現 OS 彈出窗口。
  • 使用元素定位器查找網頁元素
  • 使用機器人類處理彈出窗口並在代碼中創建機器人類的實例。

機器人類存在於 JDK(Java 開發工具包)的 AWT 包中。

結帳:印度的 Selenium 開發人員薪水

機器人類的限制

  • 鍵盤或鼠標事件僅適用於可能導致機器人類的不當行為的當前窗口實例。 相反,存在多個窗口或運行測試的多個瀏覽器。
  • 難以在不同的窗口或框架之間切換
  • 在執行機器人事件時將代碼執行移動到另一個窗口時,鍵盤或鼠標事件會停留在前一個窗口上。
  • 某些函數依賴於屏幕分辨率,可能會導致在不同機器上的代碼執行效率低下,例如 MouseMove()。
  • 在VM(虛擬機)測試上,腳本失敗概率更大。

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

由於自動化正在成為計算機上每個活動的基礎,因此Selenium 中的機器人類具有其重要性。 簡而言之,Java 中的 Robot Class 是 Selenium 版本中用於自動化其鍵盤和鼠標功能的外部類。

如果您有興趣了解有關 Java、OOP 和全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,並提供 500 多個小時的嚴格培訓, 9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

selenium 中的 webdriver 是什麼?

Webdriver 是一個用於自動化基於 Web 的測試的工具。 它提供用於檢測和控制瀏覽器和其他支持 Web 的設備的 API。WebDriver 可以用多種編程語言實現,包括 C#、Java、Ruby、PHP、Python 等。WebDriver 是用於自動化 Web 應用程序的最流行的工具. WebDriver 是一個用於自動與 Web 瀏覽器交互的工具。 Selenium 項目為 Web 應用程序測試提供了一個獨立於瀏覽器的庫。 您可以使用多種編程語言編寫測試。 WebDriver 提供了粘合劑,讓您可以從單個測試腳本調用這些不同的語言。

Selenium 可以使用哪些編程語言?

Selenium 的 WebDriver 組件可以與任何允許遠程連接的編程語言一起使用。 這包括 Java、Python、Scala、Ruby、Perl 和 PHP 等。 為了編寫測試,您需要根據您的首選語言安裝 WebDriver 客戶端。 這可以使用該語言的適當安裝步驟來完成。 Selenium 支持幾乎所有可用的編程語言。 例如,您可以將 Python 和 Ruby 與 Selenium 一起使用(並且您可以使用 C、C++ 和 Java 等語言來編寫 Selenium 擴展)。

Selenium webdriver 中的機器人類是什麼?

Selenium 中的機器人類用於向瀏覽器發出命令以移動到其中的特定坐標。 Robot 類是 Selenium Webdriver 的瀏覽器模擬器。 它是真實瀏覽器的代理,可用於自動與網頁交互,就像真實用戶一樣。 通過將所需的用戶代理傳遞給特殊的 WebDriver 實例來動態創建機器人。 Robot 類是 Selenium Webdriver 中的一個接口,用於創建新的定位器(即查找元素)。 有多種定位器創建方法,如 By.id()、By.name()、By.linkText()、By.xpath() 等。