Как с помощью Selenide на Java открыть вторую вкладку с другим сайтом?
Я проверяю регистрацию пользователя на сайте через почту, для чего на одной вкладке я открываю страницу с временной почтой (использую специальный ресурс), а на второй открываю тестируемый сайт. Вопрос простой: как в Selenide открыть новую вкладку. Сразу скажу, что switchTo().window(1) не работает пока нет второй вкладки, что, в общем, логично. Собственно, всё, спасибо за внимание.
'''
open("http://www.yopmail.com/ru/");
//вот тут надо открыть новую вкладку
switchTo().window(1); //- не работает: Exception in thread "main" No window found with index: 1
open("https://www.forumhouse.ru/");
'''
P.S. я самоучусь тестированию, поэтому второстепенный вопрос: я вообще правильно подошёл к проверке регистрации через почту?
Ответы (3 шт):
нашёл два способа: 1 - Selenide открыл 2 вкладки:
open("http://www.google.com");
Robot r = null;
try {
r = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_T);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_T);
switchTo().window(1);
open("https://yandex.ru/");
2 - Selenium открыл 2 вкладки с помощью JS:
driver.get("https://yandex.ru");
JavascriptExecutor jscript = (JavascriptExecutor)driver;
jscript.executeScript("window.open(\"http://www.google.com\");");
второй, как видно, более лаконичный, но приходится работать с Selenium'ом со всеми вытекающими. Итог как и требуется: в одном окне 2 вкладки, между которыми можно switchTo'пом переключаться. Если есть ещё варианты предлагайте, даже интересно.
Или так:
String url = "/login";
...
Selenide.executeJavaScript("window.open('"+url+"');");
Открыть новую вкладку в уже открытом браузере:
Selenide.switchTo().newWindow(WindowType.TAB);
Selenide.open(youUrl);
Переключиться обратно на первую вкладку:
Selenide.switchTo().window(0)
Переключиться обратно на вторую вкладку:
Selenide.switchTo().window(1)