원하는 기능 Selenium 웹드라이버
원하는 기능이란 무엇입니까?
원하는 기능 수업입니다 Selenium 웹 애플리케이션의 브라우저 간 테스트를 수행하기 위해 브라우저 속성을 설정하는 데 사용됩니다. 이는 기능을 키-값 쌍으로 저장하며 이러한 기능은 브라우저 이름, 브라우저 버전, 시스템의 브라우저 드라이버 경로 등과 같은 브라우저 속성을 설정하여 런타임 시 브라우저의 동작을 결정하는 데 사용됩니다.
- 원하는 기능을 사용하여 드라이버 인스턴스를 구성할 수도 있습니다. Selenium 웹드라이버.
- 다음과 같이 드라이버 인스턴스를 구성할 수 있습니다. Firefox드라이버, ChromeDriver, InternetExplorerDriver를 사용하여 원하는 기능을 사용하세요.
왜 원하는 기능이 필요한가요?
원하는 기능 필요하기 때문에 모든 지원 시나리오는 특정 테스트 환경에서 실행되어야 합니다. 테스트 환경은 웹 브라우저, 모바일 장치, 모바일 에뮬레이터, 모바일 시뮬레이터 등 원하는 기능 클래스는 테스트 스크립트에서 사용할 환경을 웹드라이버에게 알려주는 데 도움이 됩니다.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 setCapability 메소드 튜토리얼 후반부에서 설명되는 DesiredCapabilities 클래스는 다음과 같이 사용할 수 있습니다. Selenium 그리드. 다양한 시스템 구성에서 병렬 실행을 수행하는 데 사용됩니다.
예: 그리드
브라우저 속성(예: Chrome, IE), 플랫폼 이름(예: Linux, Windows) 테스트 케이스를 실행하는 동안 사용됩니다.
모바일 자동화의 경우 다양한 모바일 기기에서 테스트를 진행하기 때문에 모바일 플랫폼(예: iOS, Android) 플랫폼 버전(예: 3.x,4.x Android)를 설정할 수 있습니다.
위의 에뮬레이터 예제에서는 플랫폼 세트가 android이고 플랫폼 버전 세트가 IceCream Sandwich(4.x)입니다.
원하는 기능은 다음과 같은 경우에 더 유용합니다.
- 모바일 애플리케이션 자동화에서는 브라우저 속성과 장치 속성을 설정할 수 있습니다.
- In Selenium 다른 운영 체제와 버전을 사용하는 다양한 브라우저에서 테스트 케이스를 실행하고 싶을 때 그리드를 사용합니다.
원하는 기능 유형 방법
여기에서는 다양한 유형의 원하는 기능 방법을 살펴보고 이 방법 중 하나를 사용하는 방법을 살펴보겠습니다.setCapability 메서드”를 참조하세요.
#1) getBrowserName()
public java.lang.String getBrowserName()
#2) 세트브라우저이름()
public void setBrowserName(java.lang.String browserName)
#3) getVersion()
public java.lang.String getVersion()
#4) 세트버전()
public void setVersion(java.lang.String version)
#5) getPlatform()
public Platform getPlatform()
#6) 세트플랫폼()
public Platform setPlatform()
#7) getCapability() 메서드
DesiredCapability 클래스의 getCapability() 메서드를 사용하면 현재 시스템에서 사용 중인 기능을 가져올 수 있습니다.
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) setCapability() 메서드
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 setCapability() 메서드 Desired Capability 클래스의 장치 이름, OS 이름 및 버전, 브라우저 이름 및 버전, 테스트 중인 앱의 절대 경로(.apk 파일의 .apk 파일)와 같은 테스트 환경의 속성을 설정하는 데 사용됩니다. Android 테스트 중인 앱), 앱 활동(in Android) 및 appPackage(in Java).
"setCapability 메소드" in Java 아래 선언이 있습니다.
setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability :public void setCapability(java.lang.String key,java.lang.Object value)
기능 설정 Selenium 예시
우리가 실행하려는 예를 고려해 보겠습니다. 테스트 케이스 인터넷 익스플로러 브라우저에서 www.gmail.com 웹사이트를 열려면 다음을 사용하세요. Selenium 웹드라이버.
코드는 다음과 같습니다.
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class IEtestforDesiredCapabilities { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
이제 다음에서 이 코드를 실행해 보세요. Eclipse 그리고 콘솔을 확인해 보세요.
출력:
위의 코드를 실행하면 다음 오류가 발생합니다. 이 오류는 브라우저 드라이버(위의 경우 IE) 경로가 설정되지 않았기 때문에 발생합니다. Selenium 코드로 브라우저를 찾을 수 없습니다.
The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.
해법:
위 문제에 대한 해결책은 오류 자체의 경고 섹션에 나와 있습니다.
- 32비트 또는 64비트용 Internet ExplorerDriver 독립 실행형 서버를 다운로드합니다.
- 시스템의 적절한 위치에 드라이버를 저장합니다.
- 다음을 사용하여 드라이버 경로를 설정합니다. 시스템.setProperty 방법.
- webdriver 속성으로 IE 드라이버를 설정하는 데 사용됩니다. 시스템 위치에 저장된 드라이버 실행 파일을 찾는 데 도움이 됩니다. (예:”C:\IEDriverLocation\IEDriver.exe”)
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class IEtestforDesiredCapabilities { public static void main(String[] args) { //it is used to define IE capability DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE"); capabilities.setCapability(InternetExplorerDriver. INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); //it is used to initialize the IE driver WebDriver driver = new InternetExplorerDriver(capabilities); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
코드 설명 :
위의 코드에서,
- 가져오기 명령문은 셀레늄 웹 드라이버에 필요한 패키지, 인터넷 익스플로러 드라이버에 필요한 패키지, 원하는 기능에 필요한 패키지를 가져오는 것입니다.
- setCapability는 다양한 기능을 입력 변수로 사용하여 웹 드라이버가 원하는 환경에서 애플리케이션을 시작하는 데 사용합니다.
- setProperty는 드라이버가 있는 경로를 설정하는 데 사용됩니다. 그러면 Web Driver가 필요한 드라이버를 찾습니다.
- Gmail 웹사이트는 "get" 방식을 사용하여 Internet Explorer 브라우저에서 열립니다.
출력:
Internet Explorer 브라우저의 테스트 사례는 다음을 사용하여 성공적으로 실행됩니다. Selenium 웹드라이버.
결론
원하는 기능 클래스는 테스트가 실행될 수 있는 브라우저/환경의 동작을 정의하는 환경을 설정하는 데 도움이 됩니다.
우리가 사용하고 싶은 기능을 갖춘 원하는 환경에서 애플리케이션을 시작하는 데 도움이 됩니다.