0

RemoteWebDriver를 사용하여 개별 프로필을 설정하는 방법을 연구 중입니다. 나는 다음 스레드에서 그것에 대해 읽었습니다.Parallel Selenium Test 용 별도의 프로필 설정

http://stackoverflow.com/questions/12961037/parallel-execution-of-firefoxdriver-tests-with-profile-share-same-profile-copy 

나는 다음과 같은 그것을 해결하기 위해 노력하고 있어요 :

Time elapsed: 1.044 sec <<< FAILURE! 
org.openqa.selenium.firefox.UnableToCreateProfileException: Given model profile directory does  
not exist: TEST001 

업데이트 : 나는에 메소드 이름을 주입하고

public static RemoteWebDriver getDriver(String methodName) throws MalformedURLException { 

    String SELENIUM_HUB_URL = "http://localhost:4444/wd/hub"; 
    ThreadLocal<RemoteWebDriver> remoteWebDriver = null; 

    File currentProfileFile = new File(methodName); 
    //This is where it gives the error 
    FirefoxProfile currentFireFoxProfile = new FirefoxProfile(currentProfileFile); 
    DesiredCapabilities capabilities = DesiredCapabilities.firefox(); 
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
    capabilities.setCapability(FirefoxDriver.PROFILE, currentFireFoxProfile);  
    String proxy = System.getProperty("proxy"); 

    try { 
     remoteWebDriver = new ThreadLocal<RemoteWebDriver>(); 
     remoteWebDriver.set(new RemoteWebDriver(new URL(SELENIUM_HUB_URL), 
       capabilities)); 
     } catch (MalformedURLException e) { 
      System.out.println("Please fix the RemoteDriverSetup.class"); 
     } 

    remoteWebDriver.get().manage().window() 
      .setSize(new Dimension(2880, 1524)); 
    remoteWebDriver.get().manage().timeouts() 
      .pageLoadTimeout(10, TimeUnit.SECONDS); 
    remoteWebDriver.get().manage().timeouts() 
      .implicitlyWait(10, TimeUnit.SECONDS); 

return remoteWebDriver.get(); // Will return a thread-safe instance of the WebDriver 

}

나는 다음과 같은 오류를 얻고있다 아래 BaseTest 클래스

@BeforeMethod 
public void startTest(Method testMethod) { 
     LOG.info("Starting test: " + testMethod.getName()); 
     this.driver    = WebDriverSetup.getDriver(testMethod.getName()); 
} 
+0

어떻게 이걸 부르니? 'methodName'이란 무엇입니까? – SiKing

+0

그래서 모든 테스트에는 별도의 프로필이 있습니까? 이 모든 프로필이 확실합니까? – SiKing

+0

이러한 모든 테스트가 원격에서 실행 중이며 이러한 프로필이 존재하지 않기 때문에 즉시 작성하여 드라이버에 할당하고 싶습니다. 프로필 디렉토리를 만들고 각 드라이버에 대한 프로파일로 할당 할 수 있습니까? – startedFromTheBottom

답변

0

Firefox 프로필에서 아무 것도 사용자 정의하지 않으려면 Nguyen에서 설명한대로 프로필 세부 정보를 제공하지 않아 Firefox webdriver 인스턴스를 만드는 것이 좋습니다.

당신이 정말로, (방화범과 같은 몇 가지 플러그인을 설치해야 할 수 있습니다) 별도의 프로필을 만들 경우, 당신은 다음과 같이 모든 파일 이름을 거치지 않고 그렇게하여 할 수있는하려면 :

FirefoxProfile currentFireFoxProfile = new FirefoxProfile(); 
    //Do some customization - add extension 
    currentFireFoxProfile.addExtension(pathOfextensionToInstall); 

    //or Setup some Firefox config. switch values 
    currentFireFoxProfile.setPreference("browser.download.manager.showWhenStarting", false); 
+0

RemoteWebdriver의 여러 인스턴스를 실행하는 경우 테스트에 어떻게 영향을 미칩니 까? 내가 프로파일을 전혀 설정하지 않았다면 각 드라이버 인스턴스는 쿠키를 자체 기본 프로파일에 저장합니까, 아니면 쿠키를 공유 할 수 있습니까? 그렇다면 쿠키가 공유되고 있는지 여부를 어떻게 증명해야합니까? – startedFromTheBottom

+0

쿠키가 공유되지 않습니다! Selenium은 각 인스턴스에 대해 프로파일의 "사본"을 작성합니다. 다른 사용자 자격 증명으로 간단한 로그인 테스트를 통해이를 테스트 할 수 있습니다. – Surya