Добрый день!
Тесты работают в IE. Возникла следующая проблема:
после нажатия на кнопку, открывается окно с фреймами, перехожу в это окно в нем DOM такого формата
<HTML> <HEAD> <TITLE>Testin</TITLE> <META content="text/html; charset=Windows-1251" http-equiv=Content-Type> </HEAD> <FRAMESET cols=100%> <FRAME src="https://localhost:9000/Test/close.do?newWindow=true" frameBorder=0> </FRAMESET> </HTML>
Перехожу во фрейм driver().switchTo().frame(0); но получаю пустой ДОМ. Слипы в реальном коде не использую, делаю таким образом только для отладки и наглядности.
... LOG.info("Test1\n"+driver().getPageSource()); driver().switchTo().defaultContent(); driver().switchTo().activeElement(); driver().manage().window().maximize(); Thread.sleep(1000); driver().switchTo().frame(0); Thread.sleep(2000); LOG.info("Test2\n'"+driver().getPageSource()+"'"); ...
В итоге лог выводится строка Test2 с пустым ДОМом. Приложение естественно рабочее по факту код страницы формируется
<HTML> <HEAD> <TITLE>Testing</TITLE> <META content="text/html; charset=Windows-1251" http-equiv=Content-Type> </HEAD> <FRAMESET cols=100%> <FRAME src="https://localhost:9000/Test/close.do?newWindow=true" frameBorder=0> <html> <head> <body style="margin: 0px; padding: 0px;"> <iframe frameborder="0" src="/Test/close.do?newWindow=true" scrolling="auto" style="position: absolute; height: 100%; width: 100%;"> ... </FRAMESET> </HTML>
Я так догадываюсь из-за прямой ссылки src="https://localhost:90...?newWindow=true". Вопрос есть ли красивый способ решение данной проблемы? Пока в голову пришли только не красивые грабли. Получение ссылки src, закрытие текущего окна, открытие нового, вставка туда урла и уже работа с iframe. Такой способ рабочий но он плохой так как я вмешиваюсь в реализацию, могу упустить с таким подходом ошибки.