История страницы
Переключиться на фрейм
...
Версия 13 (Java)
Группа действий: Браузеры
...
Описание
Действие выполняет переключение фокуса управления управления на заданный фрейм на текущей странице. Переключение на фрейм используется в тех случаях, когда необходимо обратиться к веб-элементам, расположенным внутри фрейма.Фрейм - отдельный текущей странице на заданный фрейм . Фрейм - отдельный, законченный HTML-документ, который вместе с другими HTML-документами может быть отображён в окне браузера. Внутрь фрейма могут быть также вложены фреймы, и в них тоже могут быть вложены фреймы. Фреймы разбивают веб-страницу на отдельные миникадры, расположенные на одном экране, которые являются независимыми друг от друга. Каждое окно может иметь собственный адрес.
Web-элементы, которые находятся внутри фрейма, расположенного на web-странице, изолированы от элементов, находящихся на самой странице и элементов внутри других фреймов страницы. Элементы внутри фрейма будут недоступны для работы с ними с помощью действий до тех пор, пока не будет выполнено переключение на этот фрейм.
Для более глубокого понимания структуры фреймов и принципов их построения, рекомендуем ознакомиться с информацией по ссылкам ниже:
Информация |
---|
Подробнее о фреймах: https://osipenkov.ru/iframe-tracking-gtm/ https://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B5%D0%B9%D0%BC_(HTML) https://www.tutorialspoint.com/html/html_frames.htm Пример схемы робота при переключении между фреймами: Frames (1).robin-source |
Действие "Переключиться на фрейм" состоит из параметров:
Поле "Контекст" - указывается контекст для работы с браузером. Необходимо, чтобы заранее страница браузера была открыта (действие "Открыть браузер").
Поле "Элемент" - необходимо указать элемент, который указывает на фрейм (т.е фрейм, как элемент для взаимодействия). Подробнее в разделе Создание Web-элементов
Поле "Имя" - необходимо указать имя фрейма. Например: . Если имени у элемента нет, то необходимо захватить его отдельно и указать в поле "Элемент".
Поле "Индекс" - если несколько фреймов в текущем фрейме, то обращение к ним возможно по индексам. Фреймы нумеруются по порядку от верха страницы браузера.
Поле "Область поиска фрейма" - в поле можно выбрать 3 варианта значений. Текущий фрейм - поиск в рамках текущего фрейма (поиск следующего будет в текущем). Родительский фрейм - поиск фрейма на уровень выше. Вся страница - поиск в рамках всей страницы на которой есть фреймы.
...
Технически, действие перемещает фокус управления по структуре фреймов. Для этого необходимо указать целевой фрейм, в который нужно перейти, и область поиска этого фрейма.
Иконка действия
Параметры и их настройки
Свойство | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|
Параметры | ||||
Контекст | Контекст действия для работы с браузером |
Robin.Selenium | Контекст браузера | Да | ||
Элемент | Фрейм, как элемент для взаимодействия | Robin.WebElement | /html/body/div[5]/div[4]/div/div | Нет |
Имя | Имя фрейма | Robin.String | iframeResult | Нет |
Индекс | Индекс фрейма. Нумерация начинается с 0 |
Robin.Numeric | 1 | Нет | |
Область поиска фрейма | Область поиска фрейма |
Доступно 3 варианта: текущий фрейм - поиск в рамках текущего фрейма |
родительский фрейм - поиск в рамках родительского фрейма |
вся страница - поиск в рамках всей страницы |
Robin.String | Родительский фрейм | Нет |
Особые условия использования
- Из необязательных параметров, можно выбрать и заполнить один;
- При работе с элементами страницы элементы фрейма недоступны.
...
- Для того, чтобы обратиться к элементам фрейма, на него необходимо переключиться
...
- ;
- При работе с
...
- элементами фрейма элементы страницы недоступны.
...
- Для того,
...
- чтобы продолжить работу с элементами страницы,
...
- необходимо переключиться с фрейма обратно на страницу
...
- ;
- Повторно перейти на текущую вкладку возможно также с помощью действия "
...
- Переключиться на вкладку"
...
- ;
- Чтобы определить количество фреймов на странице и их атрибуты, необходимо использовать консоль разработчика. Консоль открывается нажатием клавиши F12 в браузере, где отображается iframe (если он имеется на странице).
...
Страница браузера с открытой консолью разработчика.
В рамках примера заполнения поля "Область поиска фрейма" рассмотрим сайт с фреймами: https://www.tutorialspoint.com/html/html_frames.htm
...
Пример использования
, а также схему робота Frames (1).robin-source.
Пример использования
Задача 1
Реализовать действия с использованием параметров "Индекс" и опций параметра "Область поиска".
- Опция Родительский фрейм - будем искать во фрейме находящемся на уровень выше относительно текущего фокуса (фрейма), либо когда фокус находится на основной странице. На сайте 3 фрейма (можно посмотреть с помощью консоли разработчика). Для переключения на третий фрейм заполним параметры:
- Проставляем в поле "Индекс" значение 2, (нумерация фреймов начинается с нуля);
- В поле "Область поиска фрейма" указываем значение "Родительский фрейм";
- В поле "Контекст" указываем контекст открытого браузера;
- в поле "Область поиска фрейма" укажем значение "Родительский фрейм" (потому что сейчас фокус находится в основной странице).
Фрейм (на который переключились) содержит в себе два фрейма.
2. Опция Текущий фрейм - ищем фрейм в внутри текущего фрейма. Переключимся на фрейм с текстом "This is main page and content from any link will be displayed here". Это второй фрейм внутри текущего фрейма. Укажем параметры действия:
- в поле "Контекст" укажем контекст открытого браузера;
- в поле "Индекс" укажем значение 1 (нумерация фреймов начинается с 0);
- в поле "Область поиска фрейма" укажем значение "Текущий фрейм" (ищем дочерний фрейм в текущем фрейм).
Далее, с помощью действие "Получить текст" получим текст из фрейма (см. приложенную к описанию схему робота).
3. Опция Вся страница - выполним переключение фокуса из фрейма на основную страницу. Для этого указываем опцию "Вся страница" и контекст открытого браузера. Остальные параметры оставьте пустыми.
Выполним действие "Получить текст" из основной страницы (см. приложенную к описанию схему робота).
Задача 2
Зайти Задача: зайти на сайт с фреймом https://www.w3schools.com/css/tryit.asp?filename=trycss_default, переключиться на него для дальнейшей работы с ним и получить текст из фрейма "My First CSS Example".
Реализовать действие с использованием параметров "Имя", "Элемент" и опций "Область поиска".
Решение
Воспользоваться Решение: воспользоваться действиями "Открыть браузер", "Переключиться на фрейм", "Получить текст".
Реализация
...
- Собрать робота, состоящего из действий:
- Настроить параметры для действия "Открыть браузер".
- Настроить параметр для действия "Переключиться на фрейм".
- Настроить параметры для действия "Получить текст". В поле "Элемент" необходимо указать элемент из которого необходимо получить текст. Подробнее о создании элементов в разделе: Создание Web-элементов
- Нажать на кнопку "Старт" в верхней панели.
Результат
...
Программный робот отработал успешно.
В данном случае, если отключить действие "Переключиться на фрейм", то элемент не будет найден, так как поиск элемента осуществляется в текущем документе, а сам элемент находится во вложенном.