Используя веб-драйвер selenium с java, я пытаюсь автоматизировать функциональность, при которой я нажимаю ссылку, и открывается новая вкладка. Я хочу написать глобальный метод для первой вкладки, который при вызове в основном тестовом классе переключается на вторую вкладку. У меня есть отдельный метод для выполнения утверждений на второй вкладке после завершения утверждений. Я хочу написать еще один глобальный метод, который при вызове закрывает вторую вкладку, переключается обратно на первую и возобновляет тесты в первом окне.
Я написал следующие методы и тесты:
Основной тест:
@Test(enabled = true, dataProvider = "TestThis", description = "ClickThere", groups = {"hello" })
public void AttributeValidationOnHelpPage(TestData testData, String Id, String TableName) {
menu.switch(Id);
data = menu.clickData();
data.selectNoneDateRange();
TablePage = data.openTable(TableName);
TablePage.clickAttTab();
menuPage.clickOnHelpPage();
// This method, when called will switch to second tab.
helpPage = menu.switcToHelpPage();
// After swicthing below is the assertions i want to do on the second tab.
Assert.assertTrue(driver.getCurrentUrl().contains("Second page Url."));
String actualValue = helpOnThisPage.getRefTableAttributes();
Assert.assertEquals(actualValue, "Reference Table Attributes", "Reference Table Attributes Missing");
// This method, will close the second tab and switches back to first tab and resumes the test.
helpPage.switchBackTOMainApplication();
}
Global Method for Swicthing to second tab:
public HelpPage switchToHelpPage() {
String originalHandle = driver.getWindowHandle();
try {
TimeUnit.SECONDS.sleep(8);
} catch (InterruptedException ignore) {
}
wait.until(ExpectedConditions.documentReady());
wait.until(ExpectedConditions.isNotLoading());
for (String handle : driver.getWindowHandles()) {
if (!handle.equals(originalHandle)) {
driver.switchTo().window(handle);
}
}
return new HelpPage(driver);
}
Global Method for closing the second tab and swicthing back to first tab.
public boolean switchBackTOMainApplication() {
boolean isValid = false;
String originalHandle = driver.getWindowHandle();
for (String handle : driver.getWindowHandles()) {
if (!handle.equals(originalHandle)) {
driver.switchTo().window(handle);
}
}
driver.close();
driver.switchTo().window(originalHandle);
return isValid;
}
Вот проблема, с которой я столкнулся. Когда вызывается метод helpPage.switchBackTOMainApplication (), он закрывает первую вкладку, а не переключается на нее. Есть ли какие-либо изменения, которые мне нужно сделать, чтобы закрыть вторую вкладку и продолжить тесты на первой вкладке.