Навигация по вложенным безымянным фреймам с помощью селенового веб-драйвера switchTo () - PullRequest
0 голосов
/ 23 июня 2019

У меня есть страница .jsp, с которой я пытаюсь получить веб-элементы и выполнить функции щелчка и ввода.После проб и ошибок при попытке идентифицировать эти веб-элементы на странице jsp я заметил, что страница содержит «iframes».Я искал ресурсы, чтобы иметь возможность перемещаться по фреймам по имени, а также по фреймам по индексу здесь

https://www.guru99.com/handling-iframes-selenium.html 

Однако я чувствую, что у меня есть особый случай, так как все фреймы, с которыми я имею делоне имеют идентификатора элемента или имени.Кроме того, фрейм, к которому мне нужно перейти, вложен в другие фреймы.

Поскольку, насколько я знаю, я ограничен использованием switchTo (). Frame (index)

, поскольку ни один из фреймов не назван, я уже пробовал webDriver.switchTo () .frame (индекс);

но поскольку я имею дело с вложенными фреймами, я не уверен, что добираюсь туда, куда мне нужно.Я пробовал что-то вроде

webDriver.switchTo().frame(0);
webDriver.switchTo().frame(1);
webDriver.switchTo().frame(2);
webDriver.switchTo().frame(3);

, чтобы увидеть, как далеко я могу углубиться, прежде чем получу исключение.Это просто трудно, так как я также не могу определить, в каком iframe я сейчас нахожусь. Возможно, мне нужно создать объект текущего iframe и выполнить детализацию таким образом?

Код выглядит примерно такэто ...

<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="no" src="..."></iframe>
...
... ...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="YES" src="..."></iframe> 

Вот где я должен быть

Я ожидал, что смогу успешно захватить веб-элементывнутри iframe, с которым я имею дело, но я потерпел неудачу, поскольку не уверен, как перемещаться по этим iframe.Я предполагаю, что

webDriver.switchTo().frame(index);

- мой единственный вариант, так как iframes не имеют имени и не имеют идентификатора элемента.Но вот почему я здесь.

1 Ответ

0 голосов
/ 23 июня 2019

Брат, так как вы ограничены индексом, почему бы вам не позвонить вашей команде разработчиков и попросить установить имя фрейма по запросу. Мы сделали то же самое в подобных случаях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...