2016-11-03 3 views
0

예를 들어 Selenium Webdriver에서 DesiredCapabilities를 어떻게 사용하는지 나에게 설명 할 수 있습니까?예를 들어 Selenium Webdriver에서 DesiredCapabilities 클래스 사용에 대해 누구나 설명 할 수 있습니까?

프로파일을 설정하고 DesiredCapabilities를 사용하는 것과 혼동합니다.

+1

여기를 확인 - 내가 할 http://stackoverflow.com/questions/17527951/what-is-the-use-of-desiredcapabilities-in-selenium-webdriver – Ievgen

답변

1

사용자는 WebDriver의 사용자로서 브라우저에 필요한 고유 기능 세트가있는 브라우저 용 세션을 유연하게 만들 수 있습니다. WebDriver의 기능을 사용하면 브라우저의 동작 방식을 지정할 수 있습니다.

일부 브라우저 기능에는 브라우저 세션에서 웹 페이지의 스크린 샷 찍기, 웹 페이지에서 사용자 정의 JavaScript 실행, 브라우저 세션이 창 경고와 상호 작용할 수 있도록 지원하는 등이 포함됩니다.

각 브라우저마다 고유 한 기능이 많이 있지만 모든 브라우저에 공통적 인 몇 가지 기능이 있습니다. 우리는이 책의 일부 기능들과 그 밖의 기능들에 관해서 논의 할 것입니다. 브라우저 별 기능에 대해서는 다음 장에서 자세히 설명합니다.

Capabilities는 직접 구현이 DesiredCapabilities 클래스 인 WebDriver 라이브러리의 인터페이스입니다. 특정 기능을 사용하여 브라우저 세션을 만드는 일련의 단계는 다음과 같습니다.

브라우저를 강화하려는 모든 기능을 식별합니다.

  1. DesiredCapabilities 클래스 인스턴스를 만들고 모든 기능을 설정합니다.
  2. 이제 위의 모든 기능이 전달 된 WebDriver 인스턴스를 만듭니다.
  3. 이렇게하면 Firefox/IE/Chrome 인스턴스 또는 원하는 모든 기능으로 인스턴스화 한 브라우저 중 하나가 만들어집니다.

takesScreenShot 기능을 가능하게하고있는 동안의이 FirefoxDriver의 인스턴스를 만들어 보자 : 위의 코드에서

public class BrowserCapabilities { 
public static void main(String... args) { 
    Map capabilitiesMap = new HashMap(); 
    capabilitiesMap.put("takesScreenShot", true); 
    DesiredCapabilities capabilities 
      = new DesiredCapabilities(capabilitiesMap); 
    WebDriver driver = new FirefoxDriver(capabilities); 
    driver.get("http://www.google.com"); 
} 
} 

을, 우리는 우리가지도에서 원하는 모든 기능을 설정 한 것을 사용 DesiredCapabilities의 인스턴스를 생성 지도. 이제 우리는 이러한 기능을 갖춘 FirefoxDriver 인스턴스를 만들었습니다. 이제 웹 페이지의 스크린 샷을 찍을 수있는 Firefox 브라우저가 시작됩니다. DesiredCapabilities 클래스의 정의를 보면 클래스의 생성자가 다양한 방법으로 오버로드됩니다. 지도를 전달하는 것도 그 중 하나입니다. 기본 생성자를 사용하고 DesiredCapabilities 클래스의 인스턴스를 만든 다음 setCapability() 메서드를 사용하여 기능을 설정할 수 있습니다.

브라우저는 다음 표와 같습니다 공통적 인 기본 기능 중 일부 :

기능을 는

takesScreenShot 
Tells whether the browser session can take a screenshot of the webpage 

handlesAlert 
Tells whether the browser session can handle modal dialogs 

cssSelectorsEnabled 
Tells whether the browser session can use CSS selectors while searching for   elements 

javascriptEnabled 
Enables/disables user-supplied JavaScript execution in the context of the webpage 

acceptSSLCerts 
Enables/disables the browser to accept all of the SSL certificates by default 

webStorageEnabled 
This is an HTML5 feature, and it is possible to enable or disable the browser session to interact with storage objects 

There are many other capabilities of WebDriver. 

소스에 사용됩니다 무엇 : 도서 "셀레늄 WebDriver 실용 가이드"를 사티로 Avadarala

+0

이 책을 가지고 읽고 똑같이 읽으십시오. 감사 – Rajendra

0

원하는 기능은 브라우저 이름, versioN 및 시스템에있는 브라우저 드라이버의 경로와 같은 브라우저 속성을 저장하는 일련의 키/값 쌍입니다.런타임에 브라우저의 동작을 결정합니다.

FirefoxDriver, ChromeDriver, InternetExplorerDriver와 같은 Selenium WebDriver 의 드라이버 인스턴스를 구성하는데도 사용할 수 있습니다.

예제 :

importorg.openqa.selenium.WebDriver; 
importorg.openqa.selenium.ie.InternetExplorerDriver; 
importorg.openqa.selenium.remote.DesiredCapabilities; 

public class IEtestforDesiredCapabilities { 

public static void main(String[] args) { 


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", "Put IEDriverServer path here"); 

WebDriver driver = newInternetExplorerDriver(capabilities); 

driver.manage().window().maximize(); 

driver.get("http://www.yahoo.com"); 

driver.quit(); 
} 

} 
관련 문제