Selenium Core Extensions (사용자 확장 프로그램 js)
확장 기능을 이해하려면 먼저 셀렌 IDE의 세 가지 기둥을 이해해야합니다.
1. 작업 : UI 화면에서 수행중인 작업
2. Assessors / Assertion : UI에서 얻은 데이터에 대한 검증 방법
3. Locator Strategy : UI에서 요소를 어떻게 찾을 수 있습니까?
이제 Selenium IDE에는 액션, 주장 / 평가자 및 로케이터 전략이 많이 포함 된 매우 성숙한 라이브러리가 있습니다.
그러나 때로는 프로젝트 요구 사항을 위해 더 많은 기능을 추가해야합니다. 이 경우 사용자 지정 확장을 추가하여이 라이브러리를 확장 할 수 있습니다. 이러한 사용자 지정 확장은 '사용자 확장'이라고합니다.
예를 들어 웹 요소에 텍스트를 채우기 전에 텍스트를 대문자로 변환 할 수있는 액션이 필요합니다. 기본 액션 라이브러리에서이 액션을 찾을 수 없습니다. 이 경우 자신 만의 '사용자 확장'을 만들 수 있습니다. 이 자습서에서는 텍스트를 대문자로 변환하는 사용자 확장 프로그램을 만드는 방법을 배우게됩니다
Selenium 사용자 확장 생성 요구 사항 :
Selenium IDE를위한 사용자 확장을 생성하기 위해서는 JavaScript 와 JavaScript 프로토 타입 객체 개념 의 기본 개념을 알아야합니다 .
사용자 확장 기능을 만들려면 자바 스크립트 메소드를 생성하여 셀레늄 객체 프로토 타입과 PageBot 객체 프로토 타입에 추가해야합니다.
Selenium IDE가 사용자 확장을 인식하는 방법
Selenium IDE를 시작할 때 Selenium IDE에 User Extension을 추가하면 javascript 프로토 타입의 모든 확장이로드되고 Selenium IDE가 이름으로 Selenium IDE를 인식합니다.
사용자 확장 생성 방법
1 단계) Action- - 모든 액션은 "do"에 의해 시작됩니다. 즉 액션이 대문자 텍스트 인 경우 해당 이름이 doTextUpperCase가됩니다. 이 동작 메소드를 Selenium IDE에 추가하면 Selenium IDE 자체가이 동작을위한 대기 메소드를 생성합니다. 따라서이 경우 doTextUpperCase 액션 을 생성 할 때 Selenium IDE는 해당 대기 함수를 TextUpperCaseAndWait 으로 생성 합니다. 두 개의 매개 변수를 사용할 수 있습니다.
예 : 대문자 텍스트 동작
Selenium.prototype.doTextUpperCase = function(locator, text) {
// Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
var element = this.page().findElement(locator);
// Create the text to type
text = text.toUpperCase();
// Replace the element text with the new text
this.page().replaceText(element, text);
};
2 단계) Assessors / Assertion- 셀레늄 객체 프로토 타입에 등록 된 모든 평가자가 접두어로 붙습니다.
"get"또는 "is"로 예. getValueFromCompoundTable, isValueFromCompoundTable. 이것은 두 개의 매개 변수를 허용 할 수 있습니다. 하나는 target에, 다른 하나는 value 필드에 대한 테스트 케이스입니다.
각 Assessor에는 "verify", "assert"및 wait 함수 접두어가 "waitFor"로 시작하는 해당 확인 함수가 있습니다.
예 : 대문자 텍스트 assessors의 경우
Selenium.prototype.assertTextUpperCase = function(locator, text) {
// All locator-strategies are automatically handled by "findElement"
var element = this.page().findElement(locator);
// Create the text to verify
text = text.toUpperCase();
// Get the actual element value
var actualValue = element.value;
// Make sure the actual value matches the expected
Assert.matches(expectedValue, actualValue);
};
Selenium.prototype.isTextEqual = function(locator, text) {
return this.getText(locator).value===text;
};
Selenium.prototype.getTextValue = function(locator, text) {
return this.getText(locator).value;
};
3 단계) 로케이터 전략 - 요소를 찾기위한 자체 함수를 생성하려면
접두사 "locateElementBy"가있는 함수로 PageBot 프로토 타입을 확장해야합니다.
그것은 두 개의 매개 변수를 취할 것입니다. 먼저 locator 문자열이되고 두 번째 매개 변수가 문서가됩니다.
어디에서 검색해야하는지 알려줍니다.
예 : 대문자 텍스트 로케이터의 경우
// The "inDocument" is a document you are searching.
PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
// Create the text to search for
var expectedValue = text.toUpperCase();
// Loop through all elements, looking for ones that have
// a value === our expected value
var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
for (var i = 0; i < allElements.length; i++) {
var testElement = allElements[i];
if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
return testElement;
}
}
return null;
};
새로 생성 된 코어 익스텐션을 사용하는 방법?
1. Selenium IDE로 이동하십시오.
옵션 -> 옵션 ...을 클릭하십시오.
2. 일반 섹션에서 새로 생성 된 Selenium Core Extension의 위치를 선택하십시오.
3. 확인을 클릭하고 Selenium IDE를 다시 시작하십시오.
4. 명령 목록에서 확장자를 찾을 수 있습니다.
다음은 Selenium IDE에서 사용되는 인기있는 확장 / 플러그인 목록입니다.
이름 |
목적 |
Favorites |
테스트 스위트를 즐겨 찾기로 표시하고 한 번의 클릭으로 실행 |
Flex Pilot X |
Flex 기반 자동화의 경우 |
FlexMonkium |
Selenium IDE에서의 Adobe Flex 기반 녹음 및 재생 테스트 |
File Logging |
파일에 로그 저장하기 |
Flow Control |
테스트 실행 흐름을 제어하려면 |
Highlight Elements |
웹 컨트롤을 강조 표시하려면 |
Implicit Wait |
특정 제한 시간 동안 요소를 기다리는 중입니다. |
ScreenShot on Fail |
실패시 스크린 샷 찍기 |
Test Results |
한 번의 클릭으로 테스트 스위트에 대한 테스트 사례 결과 저장 |
SeleniumHQ 공식 사이트의 다운로드 섹션에서이 모든 것을 얻을 수 있습니다.
http://docs.seleniumhq.org/download/
개요:
- Selenium IDE, Action, Assessors / Assertion, Locator 전략의 세 부분이 있습니다.
- Selenium IDE가 현재 요구 사항을 충족시키지 못하면 사용자 확장이 생성됩니다.
- 사용자 확장을 생성하려면 셀레늄의 객체 프로토 타입에 javascript를 추가해야합니다.
- 확장 생성 후 Selenium IDE에 추가하고 IDE를 다시 시작해야합니다.
'자동화테스트 > Selenium' 카테고리의 다른 글
GitHub에 셀렌 스크립트 업로드 (0) | 2019.01.03 |
---|---|
Apache Ant with Selenium : 전체 자습서 (0) | 2019.01.02 |
Selenium Webdriver를 사용하여 모든 / 깨진 링크를 찾는 방법 (0) | 2018.12.31 |
Selenium을 이용한 플래시 테스팅 (0) | 2018.12.30 |
Selenium WebDriver를 사용하여 툴팁 확인 (0) | 2018.12.29 |