<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Selenium Webdriver 中的機器人類 > 原文: [https://www.guru99.com/using-robot-api-selenium.html](https://www.guru99.com/using-robot-api-selenium.html) ## 為什么要上機器人課? 在某些 Selenium 自動化測試中,需要控制鍵盤或鼠標與 OS 窗口進行交互,例如下載彈出窗口,警報,打印彈出窗口等,或本機操作系統應用程序(例如記事本,Skype,計算器等)。 Selenium Webdriver 無法處理這些 OS 彈出窗口/應用程序。 在[中,引入了 Java](/java-tutorial.html) 1.3 版機器人類。 Robot Class 可以處理 OS 彈出窗口/應用程序。 在本教程中,您將學習, * [機器人課程](#1)的好處 * [機器人類別](#2)的文檔 * [了解機器人課程的內部方法和用法](#3) * [如何使用 testNG 執行機器人類代碼](#4) * [機器人類別](#5)的缺點 ## 機器人課的好處 1. 機器人課程可以模擬鍵盤和鼠標事件 2. 使用 Selenium Web 驅動程序時,Robot Class 可以幫助上傳/下載文件 3. 機器人類可以輕松地與當前的自動化框架集成(關鍵字,數據驅動或混合) ## 機器人課程的文檔 Robot Class 文檔將幫助您了解 Robot Class 中所有方法和函數的基本定義,語法和用法。 您可以在 [Oracle 官方網站](http://docs.oracle.com/javase/7/docs/api/)上查看文檔,也可以在本地計算機上創建文檔。 要在本地計算機上創建文檔,請按照以下步驟操作- **步驟 1)**您將在 JDK 文件夾中找到 src.zip 文件。 復制 src.zip 并將其解壓縮到其他文件夾或目錄中(例如 D:或 E:) ![Robot Class in Selenium Webdriver](https://img.kancloud.cn/8c/0f/8c0f69b4dccf886aebee8ddff18b1c77_323x341.png "Using Robot Class with Selenium") **步驟 2)**提取 src 文件夾并導航至(路徑,直到 src 文件夾) **/ src / java / awt** **步驟 3)**復制 awt 文件夾的當前位置并打開命令提示符。 **步驟 4)**在 cmd 中,將當前目錄位置更改為 awt 文件夾,然后鍵入“ javadoc * .java”,如下所示 ![Robot Class in Selenium Webdriver](https://img.kancloud.cn/e1/aa/e1aaf8ec92fe5ce9d595465570e53975_450x93.png "Using Robot Class with Selenium") 請稍候片刻,等待系統處理,完成后,您將在 awt 文件夾中看到很少的 HTML 文件。 **步驟 5)**打開 index.html ![Robot Class in Selenium Webdriver](https://img.kancloud.cn/53/fa/53fade9852c3b72c5b05e6cb360c6fe5_603x331.png "Using Robot Class with Selenium") **步驟 6)**這是 awt 軟件包的完整文檔,在左側導航欄中單擊“機器人”超鏈接(請參見下圖中的 1)。 ![Robot Class in Selenium Webdriver](https://img.kancloud.cn/c8/5d/c85d4e01d30e90b5c97335f763655fa3_474x360.png "Using Robot Class with Selenium") 在這里,您還可以看到 Robot Class 的所有方法和接口(請參見上圖中標記的 2)。 ## 了解機器人課程的內部方法和用法 在執行瀏覽器自動化的同時,可以使用 Robot Class 方法與鍵盤/鼠標事件進行交互。 另外,也可以使用 [AutoIT](/use-autoit-selenium.html) ,但是它的缺點是生成的可執行文件(exe)僅適用于 Windows,因此不是一個好選擇。 **在網絡自動化過程中,一些常用且流行的 Robot Class 方法:** * keyPress():**示例:** robot.keyPress(KeyEvent.VK_DOWN):此方法使用鍵盤的向下箭頭鍵 * mousePress():**示例**:robot.mousePress(InputEvent.BUTTON3_DOWN_MASK):此方法將右鍵單擊鼠標。 * mouseMove():**示例**:robot.mouseMove(point.getX(),point.getY()):這會將鼠標指針移動到指定的 X 和 Y 坐標。 * keyRelease():**示例:** robot.keyRelease(KeyEvent.VK_DOWN):此方法帶有釋放鍵盤的向下箭頭鍵 * mouseRelease():**示例:** robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK):此方法將釋放鼠標右鍵 **使用機器人類**自動執行常見用例的示例代碼 * 讓我們以網站 http://spreadsheetpage.com/index.php/file/C35/P10/的網站為例,在其中,單擊 Web 元素( **.// a [@ href = contains(text(), 'yearly-calendar.xls']** ),出現操作系統下載彈出窗口。 * 為了解決這個問題,我們使用 Robot 類(通過在您的代碼中創建 Robot Class 的實例,說 **Robot robot = new Robot()**))。 我們在 JDK 的 AWT 軟件包中提供了機器人類。 * 要按下鍵盤的向下箭頭鍵,我們使用( **robot.keyPress(KeyEvent.VK_DOWN))** * 按下鍵盤的 TAB 鍵(我們使用 **robot.keyPress(KeyEvent.VK_TAB))** * 要按下 Enter 鍵,我們使用( **robot.keyPress(KeyEvent.VK_ENTER))。** 這是示例代碼 ``` import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; class Excercise1 { public static void main(String[] args) throws AWTException, InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click(); Robot robot = new Robot(); // Robot class throws AWT Exception Thread.sleep(2000); // Thread.sleep throws InterruptedException robot.keyPress(KeyEvent.VK_DOWN); // press arrow down key of keyboard to navigate and select Save radio button Thread.sleep(2000); // sleep has only been used to showcase each event separately robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_TAB); Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } } ``` 觀看此視頻以觀看實際操作 ## 如何使用 TestNG 執行機器人類代碼 由于現在您了解了機器人類的基本方法,因此讓我們了解一些更復雜的方法- 假設您**不想**想要使用**單擊方法**來單擊 Web 元素。 在這種情況下,可以使用 Robot 類的 mouseMove 方法。 **步驟 1)** mouseMove 方法將 x 和 y 坐標作為參數,例如 **robot.mouseMove(630,420)**,其中 630 表示 x 軸,420 表示 y 軸。 因此,此方法會將鼠標指針從當前位置移動到提到的 x 和 y 交點。 **步驟 2)**接下來,我們需要按下鼠標按鈕。 我們可以使用 **mousePress** 方法,例如 **robot.mousePress(InputEvent.BUTTON1_DOWN_MASK)**。 **步驟 3)**按下后,需要釋放鼠標。 我們可以使用 **robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK** )來釋放鼠標左鍵。 **使用 testNG 運行代碼:** 使用 [Testng](/all-about-testng-and-selenium.html) 運行代碼需要 testNG 的 maven 依賴性或 TestNG jar 文件的引用庫。 TestNG Maven 依賴項: ``` <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency> ``` 添加 maven 依賴項或 jar 文件之后。 您需要導入 testNG 的 Test 批注。 一旦完成,只需右鍵單擊程序代碼,然后單擊運行方式,然后單擊 TestNG ...,您會發現該代碼將使用 testNG API 開始執行。 這是代碼 ``` import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; public class Excersise1 { @Test public static void execution() throws InterruptedException, AWTException { WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url Robot robot = new Robot(); robot.mouseMove(630, 420); // move mouse point to specific location robot.delay(1500); // delay is to make code wait for mentioned milliseconds before executing next step robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click robot.delay(1500); robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } } ``` Check this video to see it in action ## 機器人課的缺點 機器人框架有以下幾個缺點: 1. 關鍵字/鼠標事件僅適用于 Window 的當前實例。 例如。 假設代碼正在執行任何機器人類事件,并且在代碼執行過程中,用戶已移至其他屏幕,則該屏幕上將發生關鍵字/鼠標事件。 2. 大多數方法(例如 mouseMove)都取決于屏幕分辨率,因此在一臺計算機上運行的代碼可能無法在另一臺計算機上運行。 **摘要** AWT 程序包中的 Robot 類用于生成鍵盤/鼠標事件,以與 OS 窗口和本機應用程序進行交互。 Robot 的主要目的是支持在 Java 平臺中構建硒自動測試項目 ***本文由領先的跨國公司(MNC)的測試自動化工程師 Ramandeep Singh 提供。***
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看