셀레늄 구성이 새로 도입되었습니다. 건네주는 드라이버를 찾았습니다.이 솔루션을 찾으십시오. 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;