2017-05-16 8 views
1

셀레늄 구성이 새로 도입되었습니다. 건네주는 드라이버를 찾았습니다.이 솔루션을 찾으십시오. https://stackoverflow.com/a/35101914/7104440 이렇게하면 브라우저에서 많은 드라이버를 유도 할 수 있습니다. 다른 드라이버를 바인딩 할 수 있습니까? 이 코드에 오류가 있습니다.TestNG에서 WebDrivers 삽입 @guice를 사용하여 테스트하기 전에

encom.google.inject.CreationException: Unable to create injector, see the following errors: 

1) null 인스턴스에 바인딩 할 수 없습니다. toProvider (Providers.of (null))가 의도 한 동작이면 사용하십시오. org.openqa.selenium.WebDriver 결합 A가 이미 assecobs.driver.DriverModule.configure (DriverModule.java:31로 구성된 assecobs.driver.DriverModule.configure에서 (DriverModule.java:31)

2)) . assecobs.driver.DriverModule.configure에서 (DriverModule.java:31)

DriverModule.class

private DriverSetup driverSetup = new DriverSetup(); 

@BeforeSuite 
@Override 
public void configure(Binder binder) { 

    for (BrowserNames browserName : BrowserNames.values()) { 
     System.out.println(" bind " + browserName.toString()); 
     WebDriver driver = driverSetup.initDriver(browserName.toString()); 
     binder.bind(WebDriver.class).toInstance(driver); 
    } 
} 
} 

DriverSetup.class

@SneakyThrows 
public WebDriver initDriver(String browser) { 
    if (browser.equalsIgnoreCase("chrome")) { 
     capabilities = chromeCapabilities(); 
     driver = initChromeDriver(capabilities); 

    } else if (browser.equalsIgnoreCase("firefox")) { 
     capabilities = firefoxCapabilities(); 
     driver = initFirefoxDriver(capabilities); 

    } else if (browser.equalsIgnoreCase("opera")) { 
     capabilities = operaCapabilities(); 
     driver = initOperaDriver(capabilities); 

    } else { 
      capabilities = firefoxCapabilities(); 
      return driver = initFirefoxDriver(capabilities); 
     } 

     return driver; 
    } 

ClientTest.class

@Guice(modules = {DriverModule.class}) 
public class ClientTest extends DriverSetup { 

@Inject 
WebDriver driver; 

답변