로봇 수업 Selenium 웹드라이버
로봇 클래스란? Selenium?
로봇 클래스 in Selenium 구현을 위한 자동화된 테스트를 활성화하는 데 사용됩니다. Java 플랫폼. 테스트 자동화, 자체 실행 데모 및 사용자가 마우스와 키보드를 제어해야 하는 기타 애플리케이션을 위해 기본 시스템에서 입력 이벤트를 생성합니다. 로봇 클래스는 구현이 쉽고 자동화된 프레임워크와 쉽게 통합될 수 있습니다.
왜 로봇 수업인가?
로봇 클래스 에서 사용되는 Selenium 왜냐하면, 어떤 경우에는 Selenium 자동화 테스트의 경우 사용자는 다운로드 팝업, 인쇄 팝업 등과 같은 OS 창과 메모장, 계산기 등과 같은 기본 애플리케이션과 상호 작용하기 위해 키보드나 마우스를 제어해야 합니다. Selenium Webdriver는 이러한 팝업/응용 프로그램을 처리할 수 없으므로 Java 버전 1.3에서는 OS 팝업/어플리케이션을 처리할 수 있는 로봇 클래스가 도입되었습니다.
로봇 클래스 문서
The 로봇 클래스 문서 in Selenium 로봇 클래스에서 사용할 수 있는 모든 메소드와 기능의 기본 정의, 구문 및 사용법을 사용자가 이해할 수 있도록 도와줍니다. Java AWT 패키지. 사용자는 다음에서 문서를 볼 수 있습니다. 공식 티켓 Oracle 웹 사이트. 사용자는 자신의 로컬 컴퓨터에서 직접 문서를 만들 수도 있습니다.
로컬 컴퓨터에서 문서를 생성하려면 아래 단계를 따르십시오.
단계 1) JDK 폴더에 src.zip 파일이 있습니다. src.zip을 복사하고 다른 폴더나 디렉터리(예: D: 또는 E: )에서 동일한 파일을 추출합니다.
단계 2) src 폴더를 추출하고 (src 폴더까지의 경로)로 이동합니다./src/자바/awt
단계 3) awt 폴더의 현재 위치를 복사하고 명령 프롬프트를 엽니다.
단계 4) cmd에서 현재 디렉터리 위치를 awt 폴더로 변경하고 아래와 같이 'javadoc *.java'를 입력합니다.
시스템이 처리될 때까지 잠시 기다리십시오. 완료되면 awt 폴더에 HTML 파일이 거의 표시되지 않습니다.
단계 5) index.html 열기
단계 6) 여기에 awt 패키지에 대한 전체 문서가 있습니다. 왼쪽 탐색 모음에서 'Robot' 하이퍼링크를 클릭하세요(아래 이미지에 표시된 1 참조).
여기서는 Robot Class의 모든 메소드와 인터페이스도 볼 수 있습니다(위 이미지에 표시된 2 참조).
로봇 클래스 메소드 Selenium 및 사용법
로봇 클래스 메서드는 브라우저 자동화를 수행하는 동안 키보드/마우스 이벤트와 상호 작용하는 데 사용할 수 있습니다. 대안으로 자동IT 사용할 수는 있지만, 단점은 윈도우에서만 작동하는 실행 파일(exe)을 생성한다는 점입니다. 따라서 사용하기에 좋은 옵션이 아닙니다.
웹 자동화 중에 일반적으로 널리 사용되는 로봇 클래스 방법은 다음과 같습니다.
방법 1: 키프레스():
robots.keyPress(KeyEvent.VK_DOWN): 키보드의 아래쪽 화살표 키를 누르는 방법입니다.
방법 2: mousePress():
robots.mousePress(InputEvent.BUTTON3_DOWN_MASK): 이 메서드는 마우스 오른쪽 버튼을 클릭합니다.
방법 3: mouseMove():
robots.mouseMove(point.getX(), point.getY()): 마우스 포인터를 지정된 X 및 Y 좌표로 이동합니다.
방법 4: 키릴리스():
robots.keyRelease(KeyEvent.VK_DOWN): 키보드의 아래쪽 화살표 키를 놓는 방법입니다.
방법 5: 마우스릴리스():
robots.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): 이 메소드는 마우스 오른쪽 버튼 클릭을 해제합니다.
Robot Class를 사용하여 일반적인 사용 사례를 자동화하는 샘플 코드
- 웹 사이트 http://spreadsheetpage.com/index.php/file/C35/P10/의 예를 들어 보겠습니다. 여기서 웹 요소(
.//a[@href=contains(text(),'yearly-calendar.xls']
) OS 다운로드 팝업이 나타납니다.
- 이를 처리하기 위해 우리는 로봇 클래스를 사용합니다(코드에 로봇 클래스의 인스턴스를 생성하여 다음과 같이 말합니다). 로봇 로봇 = new Robot()) . 로봇 클래스는 JDK의 AWT 패키지에 있습니다.
키보드 키 | 방법 |
---|---|
아래쪽 화살표 키를 누르려면 | 우리는 (robot.keyPress(KeyEvent.VK_DOWN))을 사용합니다. |
Tab 키를 누르려면 | 우리는 (robot.keyPress(KeyEvent.VK_TAB))를 사용합니다. |
Enter 키를 누르려면 | 우리는 (robot.keyPress(KeyEvent.VK_ENTER))를 사용합니다. |
로봇 클래스의 예 Selenium
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
이제 로봇 클래스의 기본 방법을 알게 되었으므로 몇 가지 더 복잡한 방법을 알아보겠습니다.
당신이 클릭 방식 웹 요소를 클릭합니다.
이러한 경우에는 Robot 클래스의 mouseMove 메소드를 사용할 수 있습니다.
단계 1) mouseMove 메소드는 x 및 y 좌표를 다음과 같은 매개변수로 사용합니다. 로봇.마우스이동(630, 420) 여기서 630은 x축을 나타내고 420은 y축을 나타냅니다. 따라서 이 방법은 마우스 포인터를 현재 위치에서 언급된 x 및 y 교차점으로 이동합니다.
단계 2) 다음으로 마우스 버튼을 눌러야 합니다. 우리는 방법을 사용할 수 있습니다 마우스프레스 처럼 로봇.마우스프레스(InputEvent.BUTTON1_DOWN_MASK) .
단계 3) 누른 후에는 마우스를 놓아야 합니다. 우리는 사용할 수 있습니다 robots.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) 마우스 왼쪽 클릭을 해제하려면.
testNG를 사용하여 코드 실행:
다음을 사용하여 코드 실행 테스트 중 testNG의 Maven 종속성 또는 참조 라이브러리가 필요합니다. TestNG jar 파일.
TestNG 메이븐 의존성:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency>
maven 종속성 또는 jar 파일을 추가한 후 testNG의 Test 주석을 가져와야 합니다. 모두 완료되면 프로그램 코드를 마우스 오른쪽 버튼으로 클릭하고 Run As를 클릭한 다음 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 } }
실제로 작동하는 모습을 보려면 이 비디오를 확인하세요.
로봇 수업의 장점
- 로봇 클래스는 키보드 및 마우스 이벤트를 시뮬레이션할 수 있습니다.
- Robot Class는 Selenium 웹 드라이버를 사용할 때 파일 업로드/다운로드를 도울 수 있습니다.
- 로봇 클래스는 현재 자동화 프레임워크(키워드, 데이터 기반 또는 하이브리드)와 쉽게 통합될 수 있습니다.
로봇클래스의 단점
로봇 프레임워크에는 아래에 언급된 몇 가지 단점이 있습니다.
- 키워드/마우스 이벤트는 현재 Window 인스턴스에서만 작동합니다. 예를 들어 코드가 로봇 클래스 이벤트를 수행하고 있고 코드 실행 중에 사용자가 다른 화면으로 이동한 경우 해당 화면에서 키워드/마우스 이벤트가 발생한다고 가정합니다.
- mouseMove와 같은 대부분의 메서드는 화면 해상도에 따라 다르므로 한 컴퓨터에서 작동하는 코드가 다른 컴퓨터에서는 작동하지 않을 가능성이 있을 수 있습니다.
요약
AWT 패키지의 로봇 클래스는 OS 창과 네이티브 앱과 상호작용하기 위한 키보드/마우스 이벤트를 생성하는 데 사용됩니다.
Robot의 주요 목적은 Selenium 자동화 테스트 프로젝트 빌드를 지원하는 것입니다. Java 플랫폼