implementation our first webdriver script selenium webdriver tutorial 10
이전 두 개의 자습서에서 기본 아키텍처 및 WebDriver의 기능 그리고 Selenium WebDriver를 시작하는 데 필요한 인프라 . 여러분 모두가 필요한 모든 유틸리티와 패키지로 시스템을 설정했다고 가정하고, 첫 번째 WebDriver 테스트 스크립트의 구현으로 더 나아갈 것입니다.
따라서 결과적으로 앞서가는 Selenium WebDriver 튜토리얼 , 우리는 WebDriver 스크립트를 만들 것입니다. 우리는 또한 기본 및 일반적으로 사용되는 빛을 산란합니다. WebDriver 명령 . 우리는 또한 UI 요소의 전략 찾기 테스트 스크립트에 포함됩니다. 또한 Get Commands에 대해 자세히 공부할 것입니다.
학습 내용 :
스크립트 생성
스크립트 생성을 위해 이전 자습서에서 만든 'Learning_Selenium'프로젝트와 'gmail.com'을 테스트 대상 응용 프로그램 (AUT)으로 사용합니다.
대본:
- 브라우저를 시작하고 'Gmail.com'을 엽니 다.
- 페이지 제목을 확인하고 확인 결과를 인쇄합니다.
- 사용자 이름과 암호를 입력하십시오.
- 로그인 버튼을 클릭합니다.
- 웹 브라우저를 닫습니다.
1 단계: 'Learning_Selenium'프로젝트 아래에 'Gmail_Login'이라는 새 자바 클래스를 만듭니다.
2 단계: 'Gmail_Login.java'클래스에 아래 코드를 복사하여 붙여 넣습니다.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
위의 코드는 앞서 제시 한 텍스트 시나리오와 동일합니다.
토렌트 파일을 여는 방법
코드 연습
수입 명세서 :
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
실제 스크립팅 전에 위의 패키지를 가져와야합니다.
수입 org.openqa.selenium.WebDriver – 새 웹 브라우저를 인스턴스화하는 데 필요한 WebDriver 인터페이스를 참조합니다.
수입 org.openqa.selenium.firefox.FirefoxDriver – WebDriver 인터페이스를 사용하여 인스턴스화 된 브라우저 인스턴스에서 Firefox 특정 드라이버를 인스턴스화하는 데 필요한 FirefoxDriver 클래스를 참조합니다.
수입 org.openqa.selenium.WebElement – 새 웹 요소를 인스턴스화하는 데 필요한 WebElement 클래스에 대한 참조입니다.
수입 org.openqa.selenium.By- 로케이터 유형이 호출되는 By 클래스에 대한 참조입니다.
프로젝트가 성장할 때 엑셀 조작, 데이터베이스 연결, 로깅, 어설 션 등과 같은 더 복잡하고 뚜렷한 기능을 위해 여러 다른 패키지를 도입해야 할 수도 있다는 것이 분명하고 논리적입니다.
개체 인스턴스화
WebDriver 드라이버 = new FirefoxDriver ();
WebDriver 인터페이스에 대한 참조 변수를 만들고 FirefoxDriver 클래스를 사용하여 인스턴스화합니다. 기본 Firefox 프로필이 실행됩니다. 즉, Firefox 인스턴스와 함께 확장 및 플러그인이로드되지 않고 안전 모드에서 실행됩니다.
웹 브라우저 시작
driver.get (appUrl);
에 가져 오기() 새로운 웹 브라우저 인스턴스를 시작하기 위해 WebDriver 인스턴스에서 메서드가 호출됩니다. 매개 변수로 전달 된 문자열 문자 시퀀스 가져 오기() 메소드는 시작된 웹 브라우저 인스턴스를 애플리케이션 URL로 리디렉션합니다.
브라우저 창 최대화
driver.manage (). window (). maximize ();
그만큼 최대화 () 메서드는 응용 프로그램 URL로 리디렉션 된 직후 브라우저 창을 최대화하는 데 사용됩니다.
페이지 제목 가져 오기
driver.getTitle ();
그만큼 getTitle () 메소드는 현재 웹 페이지의 제목을 가져 오는 데 사용됩니다. 따라서 가져온 제목을 문자열 변수에로드 할 수 있습니다.
예상 값과 실제 값 비교 :
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
위의 코드는 실제 값과 예상 값을 비교하기 위해 조건문 java 구문을 사용합니다. 얻은 결과에 따라 print 문이 실행됩니다.
WebElement 인스턴스화
WebElement 사용자 이름 = driver.findElement (By.id ( 'Email'));
위의 문장에서 우리는 다음의 도움으로 WebElement 참조를 인스턴스화합니다. 'driver.findElement (By.id ('Email '))'. 따라서 사용자 이름은 사용자 인터페이스에서 작업을 수행 할 때마다 이메일 텍스트 상자를 참조하는 데 사용할 수 있습니다.
지우기 명령
username.clear ();
clear () 메서드 / 명령은 텍스트 상자에있는 값을 지우는 데 사용됩니다. 또한 기본 자리 표시 자 값을 지 웁니다.
sendKeys 명령
username.sendKeys ( 'TestSelenium');
그만큼 sendKeys () 방법 / 명령은 텍스트 상자에 지정된 값 (괄호 안에)을 입력 / 입력하는 데 사용됩니다. 주목하십시오 sendKeys () UI 요소에 해당하는 요소 속성의 도움으로 인스턴스화 된 WebElement 개체에서 메서드가 호출됩니다.
위의 코드 블록은 Gmail 애플리케이션의 이메일 텍스트 상자에 'TestSelenium'문자열을 입력합니다.
sendKeys WebDriver 스크립트에서 가장 널리 사용되는 명령 중 하나입니다.
클릭 명령
SignInButton.click ();
처럼 sendKeys (), click () 웹 요소와 상호 작용하기 위해 과도하게 사용되는 또 다른 명령입니다. 딸깍 하는 소리() 명령 / 방법은 웹 페이지에있는 웹 요소를 클릭하는 데 사용됩니다.
위 코드 블록은 Gmail 애플리케이션에있는 '로그인'버튼을 클릭합니다.
노트:
- sendKeys () 메서드와 달리 click () 메서드는 매개 변수화 할 수 없습니다.
- 때때로 웹 요소를 클릭하면 새 페이지가 모두로드 될 수 있습니다. 따라서 이러한 경우를 유지하기 위해 페이지가로드 될 때까지 대기하는 방식으로 click () 메서드가 코딩됩니다.
웹 브라우저 닫기
driver.close ();
close ()는 현재 브라우저 창을 닫는 데 사용됩니다.
Java 프로그램 종료
System.exit (0);
Exit () 메소드는 Java 프로그램을 강제 종료합니다. 따라서 Java 프로그램을 종료하기 전에 모든 브라우저 인스턴스를 닫아야합니다.
테스트 실행
테스트 스크립트 또는 단순히 Java 프로그램은 다음과 같은 방법으로 실행할 수 있습니다.
#1. Eclipse의 메뉴 표시 줄 아래에 테스트 스크립트를 실행하는 아이콘이 있습니다. 다음 그림을 참조하십시오.
선택된 클래스 만 실행된다는 점에 유의하십시오.
#두. 편집기에서 클래스 내부를 마우스 오른쪽 버튼으로 클릭하고 '다음으로 실행'옵션을 선택한 다음 'Java 응용 프로그램'을 클릭합니다.
#삼. 테스트 스크립트를 실행하는 또 다른 바로 가기는 – ctrl + F11을 누릅니다.
실행주기가 끝나면 '테스트 스크립트가 성공적으로 실행되었습니다.'라는 인쇄 문이 표시됩니다. 콘솔에서 찾을 수 있습니다.
웹 요소 찾기
WebDriver의 웹 요소는 이전 Selenium IDE 자습서에서했던 것과 동일한 방식으로 찾고 검사 할 수 있습니다. Selenium IDE 및 Firebug를 사용하여 GUI에서 웹 요소를 검사 할 수 있습니다. 웹 요소를 찾기 위해 Selenium IDE를 사용하는 것이 좋습니다. 웹 요소가 성공적으로 발견되면 WebDriver 코드 내에 대상 값을 복사하여 붙여 넣습니다. 위치 지정자의 유형과 위치 지정 전략은 구문과 해당 응용 프로그램을 제외하고 거의 동일합니다.
WebDriver에서 웹 요소는 동적 파인더 (findElement (By.locatorType ( 'locator value')))를 사용하여 찾습니다.
샘플 코드 :
driver.findElement (By.id ( '이메일'));
로케이터 유형 및 구문
로케이터 유형 | 통사론 | 기술 |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ( 'CSS 선택기')) | 값으로 찾기 CSS 선택기 |
신분증 | driver.findElement (By.id ( 'ID_of_Element')) | 값으로 찾기 'id'속성 |
className | driver.findElement (By.className ( 'Class_of_Element')) | 값으로 찾기 '클래스'속성 |
linkText | driver.findElement (By.linkText ( '텍스트')) | 값으로 찾기 하이퍼 링크의 텍스트 |
partialLinkText | driver.findElement (By.partialLinkText ( 'PartialText')) | 값으로 찾기 하이퍼 링크의 하위 텍스트 |
이름 | driver.findElement (이름으로 ( 'Name_of_Element')) | 값으로 찾기 '이름'속성 |
xpath | driver.findElement (By.xpath ( 'Xpath')) | 값으로 찾기 xpath의 |
tagName | driver.findElement (By.tagName ( 'input')) | 값으로 찾기 태그 이름 |
결론
이 자습서에서는 WebDriver 및 Java를 사용하여 자동화 스크립트를 개발했습니다. 또한 WebDriver 스크립트를 구성하는 다양한 구성 요소에 대해서도 설명했습니다.
이 Selenium WebDriver Tutorial의 핵심은 다음과 같습니다.
- 실제 스크립팅 전에 WebDriver 스크립트를 생성하려면 몇 가지 패키지를 가져와야합니다.
- 수입 openqa.selenium.By;
- 수입 openqa.selenium.WebDriver;
- 수입 openqa.selenium.WebElement;
- 수입 openqa.selenium.firefox.FirefoxDriver;
- 에 가져 오기() 새로운 웹 브라우저 인스턴스를 시작하는 데 사용되는 메서드입니다. get () 메서드에 매개 변수로 전달 된 문자 시퀀스는 시작된 웹 브라우저 인스턴스를 응용 프로그램 URL로 리디렉션합니다.
- 그만큼 최대화 () 방법은 브라우저 창을 최대화하는 데 사용됩니다.
- 그만큼 맑은() 메서드는 텍스트 상자에있는 값을 지우는 데 사용됩니다.
- 그만큼 sendKeys () 방법은 텍스트 상자에 지정된 값을 입력하는 데 사용됩니다.
- 딸깍 하는 소리() 메소드는 웹 페이지에있는 웹 요소를 클릭하는 데 사용됩니다.
- WebDriver에서 웹 요소는 동적 파인더를 사용하여 찾을 수 있습니다.
- 다음은 사용 가능한 로케이터 유형입니다.
- 신분증
- className
- 이름
- xpath
- cssSelector
- linkText
- partialLinkText
- tagName
계속해서 다음 자습서에서는 TestNG로 알려진 자동화 테스트를 지원하는 프레임 워크로 초점을 전환 할 것입니다. 프레임 워크에서 제공하는 다양한 종류의 주석에 대해 자세히 연구 할 것입니다.
다음 튜토리얼 # 11 : 프레임 워크에 대해 자세히 알아보기 전에 오픈 소스 단위 테스트 도구 인 JUnit에 대해 자세히 살펴 보겠습니다. 대부분의 프로그래머는 JUnit을 사용하기 쉽고 테스트하는 데 많은 노력을 기울이지 않습니다. 이 튜토리얼은 JUnit 및 셀레늄 스크립트에서의 사용법에 대한 통찰력을 제공합니다.
독자를위한 한마디 : Selenium 시리즈의 다음 튜토리얼이 처리 모드에있는 동안 독자는 기본 WebDriver 스크립트 작성을 시작할 수 있습니다. 더 많은 고급 스크립트와 개념을 위해이 시리즈에 나올 다양한 다른 Selenium WebDriver 튜토리얼이있을 것입니다.
WebDriver 스크립트를 생성하거나 실행하는 데 문제가 있으면 의견을 통해 알려주십시오.
추천 도서
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Eclipse로 WebDriver 전체 설정 및 설치 – Selenium Tutorial # 9
- 다양한 유형의 WebDriver 명령을 사용하여 웹 요소의 가시성 확인 – Selenium Tutorial # 14
- 효율적인 Selenium 스크립팅 및 문제 해결 시나리오 – Selenium 자습서 # 27
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- 로그로 Selenium 스크립트 디버깅 (Log4j 튜토리얼) – Selenium 튜토리얼 # 26
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11