Java 在使用@guice进行测试之前,在TestNG@中注入WebDrivers
我对配置selenium是新手。寻找通过的驱动程序找到这个解决方案,我想知道是否有可能通过这种方式从浏览器@injection许多驱动程序。可以绑定不同的驱动程序吗?我发现此代码有错误:Java 在使用@guice进行测试之前,在TestNG@中注入WebDrivers,java,selenium,automation,testng,Java,Selenium,Automation,Testng,我对配置selenium是新手。寻找通过的驱动程序找到这个解决方案,我想知道是否有可能通过这种方式从浏览器@injection许多驱动程序。可以绑定不同的驱动程序吗?我发现此代码有错误: encom.google.inject.CreationException: Unable to create injector, see the following errors: 1) 不允许绑定到空实例。如果这是您的预期行为,请使用toProvider(Providers.of(null))。 在ass
encom.google.inject.CreationException: Unable to create injector, see the following errors:
1) 不允许绑定到空实例。如果这是您的预期行为,请使用toProvider(Providers.of(null))。
在assecobs.driver.DriverModule.configure(DriverModule.java:31)中
2) 已在assecobs.driver.DriverModule.configure(DriverModule.java:31)中配置了与org.openqa.selenium.WebDriver的绑定。
在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;
我已经使用Guice+WebDriver一段时间了。您可以注入webdriver,如ClientTest.java中所示 查看此处了解详细步骤。-