top 25 selenium webdriver commands that you should know
최고의 Selenium WebDriver 명령 – 자동화 테스터를위한 경이로운 가이드
Selenium WebDriver는 가장 인기있는 오픈 소스 웹 사이트 자동화 도구 중 하나입니다. 대부분의 동료 자동화 테스터는 WebDriver와 Java의 조합을 선호합니다.
이 튜토리얼에서는 쉽게 이해할 수 있도록 관련 구문 및 간단한 예제와 함께 일상적으로 사용되는 25 개의 Selenium WebDriver 명령에 대해 설명합니다.
학습 내용 :
- WebDriver의 명령 유형
- 세부 정보가있는 상위 7 개의 셀레늄 명령
- 25 개의 더 많이 사용되는 WebDriver 명령 및 예 목록
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) 및 click ()
- # 4) isEnabled ()
- # 5) sendKeys ()를 사용한 findElement (By, by)
- # 6) getText ()를 사용한 findElement (By, by)
- # 7) 제출 ()
- # 8) findElements (By, by)
- # 9) findElements (By, by) with size ()
- # 10) pageLoadTimeout (시간, 단위)
- # 11) 암시 적으로 기다림 ()
- # 12) untill () 및 visibilityOfElementLocated ()
- # 13) untill () 및 alertIsPresent ()
- # 14) getTitle ()
- # 15) 선택
- # 16) navigate ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () 및 accept (), dismiss () 및 sendKeys ()
- # 21) getWindowHandle () 및 getWindowHandles ()
- # 22) getConnection ()
- # 23) 다음
- # 24) assertEquals (), assertNotEquals (), assertTrue () 및 assertFalse ()
- # 25) close () 및 quit ()
- 결론
- 추천 도서
WebDriver의 명령 유형
에서 마지막 Selenium 튜토리얼 , 우리는 다양한 유형의 경고 웹 기반 애플리케이션 및 효과적인 처리 방법을 테스트하는 동안 발생합니다. 경고 유형, 즉 '웹 기반 경고'와 '창 기반 경고'에 대해 자세히 설명했습니다. 또한 Windows 기반 팝업을 처리하기 위해 'Robot Class'라는 또 다른 Java 기반 유틸리티를 알게되었습니다.
앞서 나가기 이 Selenium WebDriver 튜토리얼 시리즈 , 우리는 일반적으로 그리고 일상적으로 사용되는 다양한 Selenium WebDriver 명령 . 상황이 발생할 때마다 이러한 명령을 효과적으로 사용할 수 있도록 이러한 각 Selenium 명령에 대해 정확하고 간략하게 설명합니다.
모든 자동화 Java 작업 파일은 아래 구문에서 언급 한대로 사용할 웹 브라우저의 참조를 만드는 것으로 시작됩니다.
Webdriver 인터페이스에서 사용할 수있는 몇 가지 방법이 있습니다. 이러한 메소드는 인스턴스 변수를 사용하여 액세스됩니다. 운전사 간단한 형식으로 driver.methodName (); . 이러한 모든 자동화 프로젝트에는 이러한 메서드를 호출하고 실제로 반환되는 것을 비교 및 평가하는 것이 포함됩니다.
간단히 말해서 일반적으로 Webdriver 명령을 다음과 같이 분류 할 수 있습니다.
- 브라우저 명령,
- 명령 받기,
- 탐색 명령,
- Webelement 명령,
- 액션 명령 및
- 결과 명령.
수동 테스트의 맥락에서 테스트 결과 (PASS 또는 FAIL)는 일반적으로 예상 및 실제 결과를 비교하는 결과 명령에서 결정되며 나머지는 테스트 케이스 단계입니다.
세부 정보가있는 상위 7 개의 셀레늄 명령
대략적인 아이디어를 얻기 위해 다음 Selenium WebDriver 명령과 다양한 버전에 대해 논의 할 것입니다.
- 가져 오기() 행동 양식
- 링크 찾기 linkText () 과 partialLinkText ()
- 드롭 다운에서 여러 항목 선택
- 양식 제출
- iframe 처리
- 닫기() 과 떠나다() 행동 양식
- 예외 처리
# 1) get () 메서드
WebDriver 명령 | 용법 |
---|---|
getAttribute () | • 명령은 지정된 속성의 값을 검색하는 데 사용됩니다. •이 명령에는 값을 알고 자하는 속성을 참조하고 결과로 문자열 값을 반환하는 단일 문자열 매개 변수가 필요합니다. driver.findElement (By.id ( 'findID')). getAttribute ( '값'); |
가져 오기() | •이 명령은 새 브라우저를 시작하고 열립니다. 브라우저 인스턴스의 지정된 URL • 명령은 일반적으로 테스트중인 응용 프로그램의 URL 인 단일 문자열 유형 매개 변수를 사용합니다. • Selenium IDE 사용자에게는 명령이 open 명령과 매우 유사하게 보일 수 있습니다. driver.get ( 'https://google.com'); |
getClass () | 이 명령은 Class 객체를 검색하는 데 사용됩니다. 이 객체의 런타임 클래스를 나타내는 driver.getClass (); |
getCurrentUrl () | •이 명령은 사용자가 현재 액세스하고있는 웹 페이지의 URL을 검색하는 데 사용됩니다. •이 명령은 매개 변수가 필요하지 않으며 문자열 값을 반환합니다. driver.getCurrentUrl (); |
getPageSource () | • 명령은 페이지 소스를 검색하는 데 사용됩니다. 사용자가 현재 액세스하고있는 웹 페이지의 •이 명령은 매개 변수가 필요하지 않으며 문자열 값을 반환합니다. •이 명령은 contains ()와 같은 다양한 문자열 연산과 함께 사용하여 지정된 문자열 값의 존재 부울 결과 = driver.getPageSource (). contains ( '찾을 문자열'); |
getTitle () | •이 명령은 사용자가 현재 작업중인 웹 페이지의 제목을 검색하는 데 사용됩니다. 웹 페이지에 제목이없는 경우 null 문자열이 반환됩니다. •이 명령은 매개 변수가 필요하지 않으며 잘린 문자열 값을 반환합니다. 문자열 제목 = driver.getTitle (); |
getText () | •이 명령은 내부 텍스트를 검색하는 데 사용됩니다. 지정된 웹 요소의 •이 명령은 매개 변수가 필요하지 않으며 문자열 값을 반환합니다. • 또한 표시된 메시지, 레이블, 오류 등을 확인하기 위해 광범위하게 사용되는 명령 중 하나입니다. 웹 페이지에서. 문자열 텍스트 = driver.findElement (By.id ( 'Text')). getText (); |
getWindowHandle () | •이 명령은 처리 할 창이 둘 이상인 상황을 해결하는 데 사용됩니다. •이 명령은 새로 열린 창으로 전환하고 새 창에서 작업을 수행하는 데 도움이됩니다. 사용자는 원하는 경우 이전 창으로 다시 전환 할 수도 있습니다. 개인 문자열 winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | •이 명령은 'getWindowHandle ()'의 명령과 유사하지만 여러 창을 처리하는 데 도움이된다는 미묘한 차이가 있습니다. |
'getWindowHandles ()'에 대한 코드 스 니펫은 다음과 같습니다.
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) linkText () 및 partialLinkText ()로 링크 찾기
다음을 사용하여 'google.com'및 'abodeqa.com'에 액세스하겠습니다. linkText () 과 partialLinText () WebDriver의 방법.
위에서 언급 한 링크는 다음 명령을 사용하여 액세스 할 수 있습니다.
운전사 .findElement (By.linkText ( 'Google' )).딸깍 하는 소리();
운전사 .findElement (By.linkText ( AbodeQA )).딸깍 하는 소리();
이 명령은 링크 텍스트를 사용하여 요소를 찾은 다음 해당 요소를 클릭하면 사용자가 해당 페이지로 리디렉션됩니다.
위에서 언급 한 링크는 다음 명령을 사용하여 액세스 할 수도 있습니다.
운전사 .findElement (By.partialLinkText ( '구' )).딸깍 하는 소리();
운전사 .findElement (By.partialLinkText ( '거처' )).딸깍 하는 소리();
위의 두 명령은 괄호 안에 제공된 링크의 하위 문자열을 기반으로 요소를 찾아서 partialLinkText ()가 지정된 하위 문자열이있는 웹 요소를 찾은 다음 클릭합니다.
# 3) 드롭 다운에서 여러 항목 선택
주로 두 가지 종류의 드롭 다운이 있습니다.
- 단일 선택 드롭 다운 : 한 번에 하나의 값만 선택할 수있는 드롭 다운입니다.
- 다중 선택 드롭 다운 : 한 번에 여러 값을 선택할 수있는 드롭 다운입니다.
아래 HTML 코드를 고려하십시오. 동시에 여러 값을 선택할 수있는 드롭 다운
Red Green Yellow Grey
아래 코드 스 니펫은 드롭 다운에서 여러 선택 항목을 보여줍니다.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) 양식 제출
대부분 또는 거의 모든 웹 사이트에는 웹 애플리케이션을 테스트하는 동안 작성 및 제출해야하는 양식이 있습니다. 사용자는 로그인 양식, 등록 양식, 파일 업로드 양식, 프로필 작성 양식 등과 같은 여러 유형의 양식을 볼 수 있습니다.
WebDriver에서 사용자는 양식을 제출하기 위해 특별히 생성 된 방법을 사용합니다. 사용자는 또한 제출 버튼 대신 제출 버튼을 클릭하는 방법을 사용할 수 있습니다.
위의 '신규 사용자'양식에 대해 아래 코드 스 니펫을 확인하십시오.
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
따라서 프로그램 컨트롤이 제출 메서드를 찾는 즉시 요소를 찾고 제출 () 발견 된 웹 요소의 메소드.
# 5) iframe 처리
웹 응용 프로그램을 자동화하는 동안 창에서 여러 프레임을 처리해야하는 상황이있을 수 있습니다. 따라서 테스트 스크립트 개발자는 사실을 위해 다양한 프레임 또는 iframe 사이를 전환해야합니다.
iframe과 같은 인라인 프레임 약어는 중첩을 활성화하여 현재 HTML 문서 내에 다른 문서를 삽입하거나 단순히 웹 페이지를 다른 웹 페이지에 삽입하는 데 사용됩니다.
웹 페이지 내에 iframe이있는 다음 HTML 코드를 고려하세요.
Software Testing Help - iframe session
위의 HTML 코드는 다른 iframe에 포함 된 iframe이 있음을 보여줍니다. 따라서 하위 iframe에 액세스하려면 사용자가 먼저 상위 iframe으로 이동해야합니다. 필요한 작업을 수행 한 후 사용자는 웹 페이지의 다른 요소를 처리하기 위해 상위 iframe으로 다시 이동해야 할 수 있습니다.
사용자가 먼저 상위 iframe으로 이동하지 않고 하위 iframe에 직접 액세스하려고하면 불가능합니다.
ID로 iframe 선택
운전사 .switchTo (). frame ( ' 프레임의 ID ' );
tagName을 사용하여 iframe 찾기
iframe을 찾는 동안 iframe이 표준 속성으로 표시되지 않으면 사용자가 문제에 직면 할 수 있습니다. 프레임을 찾아서 전환하는 것은 복잡한 프로세스가됩니다. 상황을 완화하기 위해 사용자는 WebDriver에서 다른 웹 요소를 찾는 방법과 유사한 tagName 메서드를 사용하여 iframe을 찾는 데 활용됩니다.
driver.switchTo (). frame (driver.findElements (By.tagName ( 'iframe'). get (0));
위의 명령은 지정된 tagName이있는 첫 번째 웹 요소를 찾고 해당 iframe으로 전환합니다. 'get (0)은 인덱스 값이있는 iframe을 찾는 데 사용됩니다.' 따라서 HTML 코드와 함께 위의 코드 구문은 프로그램 컨트롤이 'ParentFrame'으로 전환되도록합니다.
색인을 사용하여 iframe 찾기 :
a) 프레임 (인덱스)
driver.switchTo (). frame (0);
b) 프레임 (프레임 이름)
driver.switchTo (). frame ( '프레임 이름');
c) 프레임 (WebElement 요소)
부모 창 선택
driver.switchTo (). defaultContent ();
위의 명령은 사용자를 원래 창 즉, 두 iframe에서 모두 다시 표시합니다.
# 6) close () 및 quit () 메서드
WebDriver에는 웹 브라우저 인스턴스를 닫는 두 가지 유형의 명령이 있습니다.
a) 닫기 () : WebDriver의 close () 메서드는 사용자가 현재 작업중인 웹 브라우저 창을 닫거나 WebDriver에서 현재 액세스중인 창을 말할 수도 있습니다. 명령에는 매개 변수가 필요하지 않으며 값도 반환되지 않습니다.
b) quit () : close () 메서드와 달리 quit () 메서드는 프로그램이 연 모든 창을 닫습니다. close () 메서드와 마찬가지로이 명령에는 매개 변수가 필요하지 않으며 값도 반환되지 않습니다.
아래 코드 스 니펫을 참조하세요.
운전사 .닫기(); // 현재 WebDriver 인스턴스에서 액세스중인 단일 창만 닫습니다.
운전사 .떠나다(); // WebDriver 인스턴스에 의해 열린 모든 창을 닫습니다.
# 7) 예외 처리
예외는 프로그램 실행을 예기치 않게 중단시키는 조건 또는 상황입니다.
이러한 조건의 이유는 다음과 같습니다.
- 사용자에 의해 발생한 오류
- 프로그래머가 생성 한 오류
- 물리적 자원에 의해 생성 된 오류
따라서 이러한 예상치 못한 상황을 처리하기 위해 예외 처리가 개념화되었습니다.
웹 애플리케이션을 자동화하는 동안 구현하는 Java 코드와 관련하여 잘못된 조건에 대한 처리 메커니즘을 제공 할 수있는 블록 내에 포함될 수 있습니다.
예외 잡기
예외를 포착하기 위해 아래 코드 블록을 사용합니다.
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
try 블록 / 보호 된 블록에서 예외가 발생하면 실행 제어는 일치하는 예외 유형에 대한 catch 블록을 확인하고 프로그램 실행을 중단하지 않고 예외를 전달합니다.
다중 캐치 블록
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
위 코드에서 예외 유형이 일치하면 첫 번째 catch 블록에서 예외가 포착 될 수 있습니다. 예외 유형이 일치하지 않으면 예외는 모든 catch 블록을 방문 할 때까지 두 번째 catch 블록과 세 번째 catch 블록 등으로 순회됩니다.
WebDriver 조건 및 예외 처리
다양한 WebDriver의 조건부 명령을 사용하여 웹 페이지에서 요소의 존재를 확인하고자 할 때 WebDriver는 웹 요소가 웹 페이지에 존재한다고 가정합니다. 웹 요소가 웹 페이지에없는 경우 조건부 명령은 'NoSuchElementPresentException'을 발생시킵니다. 따라서 이러한 예외로 인해 프로그램 실행이 중단되는 것을 방지하기 위해 예외 처리 메커니즘을 사용합니다. 아래 코드 스 니펫을 참조하세요.
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
25 개의 더 많이 사용되는 WebDriver 명령 및 예 목록
다음은 모든 자동화 테스터가 알아야하는 일상적으로 사용되는 상위 25 개의 Webdriver 명령 목록입니다.
이 명령을 하나씩 자세히 살펴 보겠습니다.
추가 읽기 => Selenium WebDriver 튜토리얼
# 1) get ()
get ()을 사용하여 현재 브라우저에서 URL을 여는 명령입니다.
아래 명령은 브라우저에서 지정된 URL 'https://www.softwaretestinghelp.com'을 엽니 다.
통사론:
driver.get('https://www.softwaretestinghelp.com');
설명:
- URL https://www.softwaretestinghelp.com으로 이동합니다.
# 2) getCurrentUrl ()
URL이 올바른지 확인하기 위해 getCurrentUrl ()을 사용하는 명령입니다.
아래 명령은 현재 URL을 문자열 형식으로 가져옵니다.
통사론:
자바의 배열에 추가
driver.getCurrentUrl();
일반적으로 명령에서이 방법을 사용하여 예상대로 올바른 페이지로 이동했는지 확인합니다. 이를 위해 아래와 같이 Assert를 사용해야합니다. 예 .
통사론:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
여기서 expectedUrl은 문자열 형식으로 예상되는 URL입니다.
설명:
- 로드 된 URL이 동일하게 유지되고 올바른 페이지가로드되었는지 확인하고 확인하십시오.
# 3) findElement (By, by) 및 click ()
findElement (By, by) 및 click ()은 웹 페이지의 아무 요소 나 클릭합니다.
findElement (By, by) 메소드는 현재 페이지에서 매개 변수로 제공된 기준과 일치하는 첫 번째 요소를 검색하고 찾습니다. 이 방법은 일반적으로 클릭, 제출, 입력 등과 같은 사용자 작업을 시뮬레이션하는 명령에 사용됩니다.
아래 명령은 id”submit1”이있는 웹 페이지에서 첫 번째 요소를 검색하고 찾아서 해당 요소가 없으면 클릭합니다.
통사론:
driver.findElement(By.id('submit1')).click();
요소는 다음을 사용하여 찾을 수 있습니다. 신분증 , 이름 , 수업 이름 , 태그 이름 , 링크 텍스트 및 부분 링크 텍스트 , CSS 선택기 과 X 경로 .
설명:
- 필수 제출 버튼을 찾습니다.
- 버튼을 클릭하십시오.
아래 명령은 목록 상자에서 항목을 선택합니다.
통사론:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
설명:
- ID 'name1'로 목록 항목을 검색하고 찾습니다.
- 해당 항목을 클릭하십시오.
# 4) isEnabled ()
isEnabled ()를 사용하여 Selenium WebDriver에서 요소가 활성화되었는지 비활성화되었는지 확인합니다.
웹 페이지에서 특정 요소가 활성화되었는지 확인하기 위해 isEnabled () 메서드를 사용합니다.
통사론:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
설명:
- xpath에 따라 웹 페이지에서 요소를 찾고 요소가 활성화되어 있는지 확인합니다.
# 5) sendKeys ()를 사용한 findElement (By, by)
sendKeys ()와 함께 findElement (By, by)를 사용하여 양식 필드에 입력합니다.
자동화 테스트에 자주 필요한 다양한 사용자 입력을 입력하여 양식 유효성 검사를 수행합니다. findElement (By, by)를 사용하여 필드를 찾고 sendKeys ()를 사용하여 일부 콘텐츠를 편집 가능한 필드에 입력합니다.
아래 명령은 이름 로케이터를 사용하여 양식 필드를 찾고 'Aaron'을 입력합니다.
통사론:
driver.findElement(By.name('name')).sendkeys('Aaron');
설명:
- 양식에서 필수 이름 필드를 찾으십시오.
- 여기에 'Aaron'값을 입력합니다.
# 6) getText ()를 사용한 findElement (By, by)
getText ()와 함께 findElement (By, by)는 대상 웹 요소의 값을 저장합니다.
getText ()는 웹 요소의 내부 텍스트를 가져 오는 메서드입니다. 텍스트 가져 오기는 HTML 태그 내부의 텍스트입니다.
아래 코드는 tagName이 'select'인 요소를 찾고 태그 내부의 텍스트를 가져 와서 변수 드롭 다운에 저장합니다. 이제 문자열 드롭 다운을 프로그램 내부의 추가 작업에 사용할 수 있습니다.
통사론:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
설명:
- tagName 'dropdown1'이있는 양식에서 필수 필드를 찾으십시오.
- HTML 태그 안에 텍스트를 가져옵니다.
- 문자열 객체 'DropDown'에 텍스트를 저장합니다.
# 7) 제출 ()
웹 양식을 제출하려면 Submit ()하십시오.
위에서 논의한 click () 메서드는 링크 나 버튼을 클릭하는 데 사용할 수 있습니다. 클릭 할 요소가 제출 단추 인 경우 Submit ()이 click ()보다 나은 대안입니다. 제출 버튼은 HTML '양식'태그 안에 있으며 버튼 유형은 '제출'( '버튼'아님)입니다.
submit ()은 이름이나 이메일 주소와 같은 다른 필드에 추가 할 수있는 버튼과 메서드를 자동으로 찾아 생활을 더 쉽게 만듭니다. 클릭의 경우 findElement (By, by) 메소드를 사용하고 정확한 로케이터를 지정해야합니다.
버튼 이외의 요소를 통해 작업이 수행되는 일부 시나리오에서 submit ()은 작동하고 click ()은 작동하지 않습니다.
통사론:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
설명:
- 주어진 x 경로에서 이름이 'comments'인 요소를 찾습니다.
- 양식을 제출하십시오.
# 8) findElements (By, by)
findElements (By, by)를 사용하여 웹 요소 목록을 가져옵니다.
때때로 우리는 웹 페이지의 링크 또는 입력 필드와 같은 웹 요소 목록을 인쇄하거나 작업을 수행 할 수 있습니다. 이 경우 findElements (By, by)를 사용합니다.
통사론:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
설명:
- 지정된 xpath가있는 모든 웹 요소의 목록은 webelement 목록 allChoices에 저장됩니다.
# 9) findElements (By, by) with size ()
findElements (By, by) with size ()를 사용하여 요소가 있는지 확인합니다.
findElements (By, by)는 요소가 실제로 웹 페이지에 있는지 확인하는 데 사용할 수 있습니다.
아래 명령은 특정 로케이터가있는 요소가 웹 페이지에 있는지 확인하려는 경우 사용됩니다. size ()! = 0이면 요소가 존재합니다.
통사론:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
설명:
- 찾기 요소는 ID가‘checkbox2’인 xpath에 지정되어 있습니다.
- 요소 목록의 크기에 따라 부울 checkIfElementPresent가 TRUE 또는 FALSE로 설정됩니다.
# 10) pageLoadTimeout (시간, 단위)
pageLoadTimeout (time, unit)은 페이지가로드되는 시간을 설정합니다.
때때로 서버 문제 또는 네트워크 지연으로 인해 페이지를로드하는 데 평소보다 더 많은 시간이 소요될 수 있습니다. 이로 인해 프로그램에서 오류가 발생할 수 있습니다. 이를 방지하기 위해 대기 시간을 설정하고 pageLoadTimeout ()이 그러한 방법 중 하나입니다. 일반적으로 get () 명령을 따릅니다.
통사론:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
설명:
- 페이지가로드 될 때까지 500 초 동안 기다립니다.
# 11) 암시 적으로 기다림 ()
implicitlyWait ()는 웹 요소를 검색하고 찾기 전에 대기 시간을 설정합니다.
웹 페이지가로드되고 요소가 나타나기 전에 Webdriver가 요소를 찾으려하면 어떻게됩니까? NoSuchElementExeption이 발생합니다. 이를 방지하기 위해 요소를 찾기 전에 일정 시간 동안 암시 적으로 대기하는 명령을 추가 할 수 있습니다.
통사론:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
설명:
- 코드의 다음 줄을 실행하기 전에 암시 적으로 1000 초 동안 기다립니다.
# 12) untill () 및 visibilityOfElementLocated ()
WebdriverWait의 untill () 및 ExpectedConditions의 visibilityOfElementLocated ()가 웹 페이지에 요소가 표시 될 때까지 명시 적으로 대기합니다.
암시 적 대기를 적용하는 소프트웨어 웹 페이지에서 요소가 표시되는 데 너무 많은 시간이 걸리는 경우를 처리하기가 까다로워집니다. 이 경우 요소가 웹 페이지에 나타날 때까지 기다리도록 주석을 작성할 수 있습니다. 이 명령은 WebdriverWait 클래스의 until () 메서드와 ExpectedConditions 클래스의 visibilityOfElementLocated () 메서드의 조합을 사용합니다.
통사론:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
설명:
- 첫 번째 줄은 10 초 동안 기다리는 시간을 나타냅니다.
- 두 번째 조건은 기다려야 할 예상 조건을 말합니다. 여기에 언급 된 xpath에 id'name '이있는 요소가 있습니다.
# 13) untill () 및 alertIsPresent ()
WebdriverWait의 untill () 및 ExpectedConditions의 alertIsPresent ()가 경고가 나타날 때까지 명시 적으로 대기합니다.
일부 시나리오에서는 경고가 테스트를 계속할 때까지 기다려야합니다. 이 경우 WebdriverWait 클래스의 until () 메서드와 ExpectedConditions 클래스의 alertIsPresent () 메서드를 사용하는 명령을 사용합니다.
아래 명령을 참조하십시오.
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
설명:
- 첫 번째 줄은 대기 할 시간 (10 초)을 나타냅니다.
- 두 번째 조건은 기다려야 할 예상 조건을 말합니다. 여기에 경고 팝업이 있습니다.
# 14) getTitle ()
getTitle ()을 사용하여 Selenium 웹 드라이버에서 페이지 제목을 가져옵니다.
통사론:
String title = driver.getTitle(); System.out.println(title);
일반적으로 출력 로그의 제목을 인쇄하는 데 사용됩니다.
설명:
- 웹 페이지의 제목을 가져 와서 String 개체 제목에 저장합니다.
- 제목에 저장된 값을 출력 로그에 인쇄합니다.
# 15) 선택
Selenium WebDriver의 드롭 다운에서 값을 선택 및 선택 취소하기위한 클래스를 선택합니다.
종종 드롭 다운 관련 시나리오가 있습니다. 이를 처리하기 위해 Select 클래스의 메서드가 사용됩니다. 시나리오에 따라 selectByVisibleText (), selectByValue () 또는 selectByIndex ()를 사용할 수 있습니다.
통사론:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운에서 보이는 텍스트 'Apple'을 선택합니다.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운에서 값이 'Apple'인 텍스트를 선택합니다.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운 (두 번째 항목)에서 인덱스 값이 '1'인 드롭 다운 항목을 선택합니다.
선택과 마찬가지로 유사한 명령을 사용하여 드롭 다운에서 값을 선택 취소 할 수 있습니다.
명령을 확인하십시오 :
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운에서 보이는 텍스트 'Apple'을 선택 취소합니다.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운에서 값이 'Apple'인 텍스트를 선택 취소합니다.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
설명:
- ID 'select'를 사용하여 드롭 다운을 찾습니다.
- 드롭 다운 (두 번째 항목)에서 색인 값이 '1'인 드롭 다운 항목을 선택 취소합니다.
URL 사이를 이동하려면 navigate ()
랜딩 URL에서 탐색 한 다음 뒤로 또는 앞으로 이동하려는 경우가 종종 있습니다. 이러한 경우 get ()을 사용하는 대신 navigate ()를 사용할 수 있습니다. Navigate에서는 URL을 지정하지 않고 back () 및 forward () 메서드를 사용할 수 있습니다.
통사론:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
설명:
- https://www.softwaretestinghelp.com으로 이동합니다.
- 뒤로 이동하십시오.
- 앞으로 이동합니다.
# 17) getScreenshotAs ()
getScreenshotAs ()를 사용하여 Selenium WebDriver에서 전체 페이지 스크린 샷을 캡처합니다.
이것은 종종 작업 세부 정보를 저장하거나 출력을 수동으로 확인하는 데 필요합니다. 아래 명령은 스크린 샷을 찍고 출력 파일에 저장하는 데 사용됩니다.
통사론:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
설명:
- 스크린 샷을 찍고 파일을 오브젝트 샷에 저장합니다.
- D 드라이브에 파일을 shot1.png로 저장합니다.
# 18) moveToElement ()
Actions 클래스의 moveToElement ()를 사용하여 마우스 호버 효과를 시뮬레이션합니다.
하위 메뉴를보기 위해 메뉴 위, 색상 변경을보기위한 링크 등과 같은 웹 요소 위로 마우스를 가져 가야하는 시나리오가 있습니다.이 경우 Actions 클래스를 사용합니다. Action 클래스에 대한 아래 구문을 살펴보십시오.
통사론:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
설명
- div ID가‘mainmenu1’인 웹 요소를 찾아 찾습니다.
- 마우스 포인터를 요소로 이동합니다.
# 19) dragAndDrop ()
Actions 클래스의 dragAndDrop ()을 사용하여 요소를 끌어서 다른 요소에 놓습니다.
일부 시나리오에서는 요소를 끌 수 있습니다. 예를 들어, 이미지를 스테이지로 드래그합니다. 이 경우 Actions 클래스를 사용할 수 있습니다.
dragAndDrop 메서드에서 두 개의 매개 변수 인 Source locator (드래그하려는 요소)와 Destination locator (드롭하려는 요소)를 전달합니다.
통사론:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
설명:
- 소스 웹 요소를 찾아 찾습니다.
- 대상 웹 요소를 찾아 찾습니다.
- 소스 요소를 대상 요소로 끌어서 놓습니다.
# 20) switchTo () 및 accept (), dismiss () 및 sendKeys ()
Alert 클래스의 switchTo () 및 accept (), dismiss () 및 sendKeys () 메서드를 사용하여 팝업 경고로 전환하고 처리합니다.
경고, 팝업으로 전환하고이를 처리하기 위해 다음의 조합을 사용합니다. 로 전환() 과 accept (), dismiss () Alert 클래스의 메서드.
통사론:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
설명:
- 경고 창으로 전환합니다.
- 경고 안에 'This Is Softwaretestinghelp'를 입력하십시오.
- 경고를 수락하고 닫습니다.
alert.dismiss () 경고를 해제하는 데 사용할 수 있습니다.
# 21) getWindowHandle () 및 getWindowHandles ()
getWindowHandle () 및 getWindowHandles ()를 사용하여 Selenium WebDriver에서 다중 창을 처리합니다.
소기업 용 퀵북에 대한 무료 대안
웹 응용 프로그램에 많은 프레임이나 창이있는 경우가 많습니다.
대부분 광고 또는 정보 팝업 창입니다. Windows Handler를 사용하여 여러 창을 처리 할 수 있습니다. Webdriver는 각 창에 대해 고유 한 창 ID를 저장합니다. 이 ID를 사용하여 처리합니다.
통사론:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
위의 명령은 각각 현재 창과 모든 창의 창 ID를 가져 오는 데 사용됩니다. for 루프를 통해 각 창으로 이동하는 방법을 보려면 아래 루프를 참조하십시오.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
설명:
- driver.getWindowHandles ()의 각 창 핸들 ID에 대해 해당 창 ID로 전환하십시오.
# 22) getConnection ()
DriverManager에서 getConnection ()을 사용하여 데이터베이스 연결을 시작합니다.
데이터베이스 연결을 시작하기 위해 DriverManager 클래스에서 getConnection을 사용합니다.
통사론:
DriverManager.getConnection(URL, 'username', 'password' )
설명:
- URL 및 자격 증명을 통해 데이터베이스에 연결합니다.
# 23) 다음
Excel 파일에서 읽을 POI입니다.
데이터 기반 테스트에서 우리는 종종 입력을 Excel 파일에 저장하고 읽습니다. WebDriver에서이를 수행하기 위해 POI 패키지를 가져온 다음 아래 명령을 사용합니다.
통사론:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
설명:
- 리더 파일을 만듭니다.
- 파일을 읽으십시오.
# 24) assertEquals (), assertNotEquals (), assertTrue () 및 assertFalse ()
assertEquals (), assertNotEquals (), assertTrue () 및 assertFalse ()를 사용하여 결과를 비교합니다.
어설 션은 예상 결과와 실제 결과를 비교하는 데 사용됩니다. 테스트의 통과 또는 실패는 일반적으로 주장의 결과에 따라 결정됩니다. 자동화에는 여러 유형의 어설 션이 사용됩니다.
통사론:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
설명:
- 첫 번째 명령에서 예상 값과 실제 값이 같을 때마다 어설 션이 예외없이 전달됩니다. 즉, 메시지가 '이 텍스트'이면 어설 션이 통과됩니다.
- 두 번째 명령에서 예상 값과 실제 값이 같을 때마다 어설 션이 예외와 함께 실패합니다. 즉, 메시지가 '이 텍스트'이면 어설 션이 실패합니다.
- 세 번째 명령에서 조건이 통과하면 어설 션이 통과됩니다. 즉, 결과<0, then the assertion passes.
- 네 번째 명령에서 조건이 통과하면 어설 션이 실패합니다. 즉, 결과<0, then the assertion fails.
# 25) close () 및 quit ()
close () 및 quit ()는 창과 드라이버 인스턴스를 닫습니다.
이러한 명령은 모든 자동화 프로그램의 끝에 사용됩니다.
통사론:
driver.close() driver.quit()
설명:
첫 번째 명령은 현재 창을 닫습니다.
두 번째 명령은이 드라이버 인스턴스를 종료하고 열려있는 모든 관련 창을 닫습니다.
결론
이 자습서에서는 일반적으로 과도하게 사용되는 다양한 WebDriver 명령을 소개했습니다. 적절한 예제와 코드 조각을 사용하여 명령을 설명하려고했습니다.
저는 일상 업무에서 일상적으로 사용하는 가장 인기있는 WebDriver 명령을 설명하기 위해 최선을 다했습니다. 이 명령을 사용하면 Selenium으로 쉽게 작업 할 수 있습니다.
나는 그것이 당신에게 흥미롭고 지식이 많았기를 바랍니다.
위의 명령을 시도한 자동화 테스터입니까? 아니면 위 목록에서 사용중인 명령을 놓친 적이 있습니까?
다음 튜토리얼 # 18 : 다음 튜토리얼에서는 다음에 대해 논의 할 것입니다. 웹 테이블, 프레임 및 동적 요소 웹 프로젝트의 필수 부분입니다. 우리는 또한 다룰 것입니다 예외 처리 다가오는 Selenium Tutorials 중 하나에서 더 자세한 내용의 중요한 주제.
추천 도서
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 다양한 인기 브라우저에서 Selenium WebDriver를 실행하는 방법
- 첫 번째 WebDriver 스크립트 구현 – Selenium WebDriver Tutorial # 10
- 셀레늄 FAQ
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- GeckoDriver Selenium 튜토리얼 : Selenium 프로젝트에서 GeckoDriver를 사용하는 방법
- Selenium WebDriver의 암시 적 및 명시 적 대기 (Selenium 대기 유형)