Группа действий: Браузеры
Действие выполняет переключение фокуса управления на текущей странице на заданный фрейм . Фрейм - отдельный, законченный 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 |
Технически, действие перемещает фокус управления по структуре фреймов. Для этого необходимо указать целевой фрейм, в который нужно перейти, и область поиска этого фрейма.
Поле "Контекст" Необходимо указать контекст открытого браузера, в котором нужно искать фрейм
Страница браузера, где расположен нужный фрейм, должна быть открыта (действие "Открыть браузер").
Поле "Элемент" Необходимо указать веб-элемент, указывающий на фрейм. Такой элемент может быть создан вручную или с помощью WebSpy.
Подробнее в разделе Создание Web-элементов
Поле "Имя" Можно указать имя фрейма. Например:
Для поиска такого имени фрейма воспользуйтесь консолью разработчика (клавиша F12 в chrome).
Если у элемента отсутствует имя, то необходимо захватить его отдельно и указать в поле "Элемент", как указано в предыдущем параметре.
Поле "Индекс" Можно указать порядковый номер фрейма в структуре страницы
Фреймы нумеруются по порядку от верха страницы браузера, нумерация фреймов начинается с нуля.
Количество фреймов и их расположение в разметке страницы можно посмотреть также в консоли разработчика.
Если заполнены все три вышеперечисленных необязательных полей, то робот по порядку обходит параметры и пытается по ним искать фрейм. Если одна из проверок наличия фрейма, по порядку, выдаст ошибку, то действие завершит работу с ошибкой. Соответственно, если имя существует, а веб-элемент нет, но все равно указан, то действие отобразит ошибку. |
Поле "Область поиска фрейма" Указывает направление поиска нужного фрейма для перехода
Относительно текущего положения, можно искать:
Для этого необходимо выбрать одну из возможных опций:
Если структура страницы имеет несколько уровней вложенности фреймов, то для переключения к фрейму, находящемуся на n-уровне вложенности, необходимо выполнить n действий переключения на фрейм, последовательно.
Свойство | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
Параметры | ||||
Контекст | Контекст действия для работы с браузером | Robin.Selenium | Контекст браузера | Да |
Элемент | Фрейм, как элемент для взаимодействия | Robin.WebElement | /html/body/div[5]/div[4]/div/div | Нет |
Имя | Имя фрейма | Robin.String | iframeResult | Нет |
Индекс | Индекс фрейма. Нумерация начинается с 0 | Robin.Numeric | 1 | Нет |
Область поиска фрейма | Область поиска фрейма Доступно 3 варианта: текущий фрейм - поиск в рамках текущего фрейма родительский фрейм - поиск в рамках родительского фрейма вся страница - поиск в рамках всей страницы | Robin.String | Родительский фрейм | Нет |
Страница браузера с открытой консолью разработчика:
В рамках примера заполнения поля "Область поиска фрейма" рассмотрим сайт с фреймами: https://www.tutorialspoint.com/html/html_frames.htm , а также схему робота Frames (1).robin-source
Реализовать действия с использованием параметров "Индекс" и опций параметра "Область поиска".
Фрейм (на который переключились) содержит в себе два фрейма.
2. Опция Текущий фрейм - ищем фрейм в внутри текущего фрейма. Переключимся на фрейм с текстом "This is main page and content from any link will be displayed here". Это второй фрейм внутри текущего фрейма. Укажем параметры действия:
Далее, с помощью действие "Получить текст" получим текст из фрейма (см. приложенную к описанию схему робота).
3. Опция Вся страница - выполним переключение фокуса из фрейма на основную страницу. Для этого указываем опцию "Вся страница" и контекст открытого браузера. Остальные параметры оставьте пустыми.
Выполним действие "Получить текст" из основной страницы (см. приложенную к описанию схему робота).
Зайти на сайт с фреймом https://www.w3schools.com/css/tryit.asp?filename=trycss_default, переключиться на него для дальнейшей работы с ним и получить текст из фрейма "My First CSS Example".
Реализовать действие с использованием параметров "Имя", "Элемент" и опций "Область поиска".
Воспользоваться действиями "Открыть браузер", "Переключиться на фрейм", "Получить текст"
Программный робот отработал успешно.
В данном случае, если отключить действие "Переключиться на фрейм", то элемент не будет найден, так как поиск элемента осуществляется в текущем документе, а сам элемент находится во вложенном.