У меня есть страница .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 не имеют имени и не имеют идентификатора элемента.Но вот почему я здесь.