Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 30 Следующий »

Переключиться на фрейм / Switch to frame

Группа действий: Браузеры


Действие выполняет переключение фокуса управления на заданный фрейм на текущей странице. Переключение на фрейм используется в тех случаях, когда необходимо обратиться к веб-элементам, расположенным внутри фрейма.

Фреймотдельный законченный HTML-документ, который вместе с другими HTML-документами может быть отображён в окне браузера.

В настройках действия поля "Элемент", "Имя" и "Индекс" есть 3 разных способа обратиться к нужному фрейму. Если заполнены все три поля, то робот по порядку обходит параметры и пытается по ним искать. Если одна из проверок по порядку вернет ошибку, то действие завершит работу с ошибкой. Соответственно, если имя существует, а веб-элемент нет, но все равно указан, то действие отобразит ошибку. 


Подробнее о фреймах: 

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 варианта значений.   Текущий фрейм - поиск в рамках текущего фрейма (поиск следующего будет в текущем). Родительский фрейм - поиск фрейма на уровень выше. Вся страница - поиск в рамках всей страницы на которой есть фреймы.

В рамках примера заполнения поля "Область поиска фрейма" рассмотрим сайт, на котором есть фреймы: 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. Вся страница -  идет переключение фрейма на основную страницу (технически, выход драйвера из контекста фреймов), и после этого мы еще и не передали аргументов для переключения, мы оказались на основной странице и получили с нее текст с помощью действия "Получить текст" (см. приложенную к описанию схему робота). 


Настройки

Свойство

Описание

Тип

Пример заполнения

Обязательность заполнения поля

Параметры

Контекст

Контекст действия для работы с браузером.

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.w3schools.com/css/tryit.asp?filename=trycss_default, переключиться на него для дальнейшей работы с ним и получить текст из фрейма "My First CSS Example". 

Решение: воспользоваться действиями "Открыть браузер", "Переключиться на фрейм", "Получить текст". 

Реализация:

  1. Собрать робота, состоящего из действий:

  2. Настроить параметры для действия "Открыть браузер". 


  3. Настроить параметр для действия "Переключиться на фрейм". 
  4. Настроить параметры для действия "Получить текст". В поле "Элемент" необходимо указать элемент из которого необходимо получить текст. Подробнее о создании элементов в разделе: Создание Web-элементов


  5. Нажать на кнопку "Старт" в верхней панели. 

Результат:

Программный робот отработал успешно. 





В данном случае, если отключить действие "Переключиться на фрейм", то элемент не будет найден,  так как поиск элемента осуществляется в текущем документе, а сам элемент находится во вложенном. 





  • Нет меток