Я столкнулся с проблемой при запуске простых тестов с использованием TestNG с Selenium с использованием Spring framework, проблема в том, что он не может запустить два параллельных сеанса (без параллельной работы он отлично работает без каких-либо проблем). Общая цель - запустить два параллельных браузера и каждый сеанс, управляемый springIO C. Без Spring это легко сделать с помощью stati c threadLocal, но с Spring я хочу поддерживать два отдельных контейнера IO C, управляемых самой Spring.
Пожалуйста, помогите мне решить эту проблему. Код доступен по ссылке ниже: https://github.com/priyankshah217/AutomationFrameworkUsingSpringDI.git
testNg. xml
<test name="search-engine-test">
<classes>
<class name="com.test.framework.tests.TestAmazonWeb"/>
</classes>
</test>
TestConfig. java
@Configuration
@ComponentScan("com.test.framework")
public class TestConfig {
WebDriver webDriver;
@Bean
public WebDriver getDriver() {
if (webDriver == null || ((ChromeDriver) webDriver).getSessionId() == null) {
webDriver = new ChromeDriver();
}
return webDriver;
}
}
BaseTest. java
@ContextConfiguration(classes = {TestConfig.class})
public class BaseTest extends AbstractTestNGSpringContextTests {
@Autowired
private WebDriver webDriver;
@AfterMethod
public void tearDown() {
webDriver.quit();
}
}
GoogleHomePage. java
@PageObject
public class GoogleHomePage extends BasePage {
@FindBy(name = "q")
private WebElement searchTextbox;
public void enterGoogleSearch() {
hardWait();
searchTextbox.sendKeys("Selenium");
searchTextbox.sendKeys(Keys.RETURN);
}
}
Все объекты страницы Компонент spring с WebDriver (с автоматическим подключением)