В чем разница между методом driver.switchTo (). ParentFrame () и driver.switchTo (). DefaultContent () в Selenium WebDriver?

В чем разница между двумя методами:

driver.switchTo().parentFrame();
driver.switchTo().defaultContent();
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
21 116
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

driver.switchTo (). parentFrame ();

Согласно спецификациям, driver.switchTo().parentFrame(); вызывает следующее:

Switch To Parent Frame

Где команда Переключиться на родительский фрейм устанавливает текущий контекст просмотра для будущих команд равным родитель из текущий контекст просмотра.

Согласно методу Документы JavaparentFrame() изменяет фокус на родительский контекст. Если текущий контекст является контекстом просмотра верхнего уровня, контекст остается неизменным.

driver.switchTo (). defaultContent ();

Согласно методу Документы Java, метод defaultContent() выбирает либо первый фрейм на странице, либо основной документ, если страница содержит фреймы.

Это означает, например, если у меня есть 3 кадра, которые являются вложенными кадрами i1, i2, i3. Если мой курсор сейчас находится в i3. Используя parentframe (), я могу достичь i2, а я могу достичь i1, используя defaultcontent ()

sreenath reddy 30.06.2018 13:23

@sreenathreddy Исправьте If my cursor currently in i3. By using parentframe() i can reach to i2, но defaultcontent() перенесет вас в основной документ, то есть Контекст просмотра верхнего уровня

DebanjanB 30.06.2018 13:42

Разница явно есть:

Сценарий: Когда есть несколько кадров и некоторые из них вложены.

iframeMain
iframeParent
iframechild

Предположим, вы находитесь в ifrmaechild:

Когда вы сделаете driver.switchTo().parentFrame();: вы перейдете к iframeParent .
Но когда вы сделаете driver.switchTo().defaultContent();: вы перейдете в основной HTML-код страницы. Обратите внимание, что в этом случае вы не перейдете к iframeMain.

driver.switchTo (). defaultContent (); в этом случае фокус переместится на родительский фрейм всех вложенных фреймов. Например, у меня есть кадры i1, i2, i3, которые являются вложенными кадрами. в этом случае, если я использую content () по умолчанию, когда фокусируюсь на i3, он перемещается в кадр i1.

sreenath reddy 09.07.2018 08:44

если вы используете driver.switchTo().defaultContent(); из i3, вы будете перемещены в главное дерево HTML DOM.

cruisepandey 10.07.2018 19:02

Когда вы имеете дело с несколькими фреймами iframe на своей веб-странице, driver.switchTo().parentFrame() обычно используется для переключения управления обратно на родительский фрейм.

Когда вы имеете дело со всплывающими диалоговыми окнами на своей веб-странице, driver.switchTo().defaultContent() используется для переключения элемента управления обратно на содержимое окна по умолчанию.

driver.switchTo (). defaultContent ();

Это передаст управление основному документу, который содержит фреймы.

driver.switchTo (). parentFrame ();

Это передаст управление неизбежному родительскому кадру текущего кадра.

Давайте поймем это:

main body
{
frame1
{
frame2
frame3 (we are here currently)
}
}

Теперь с помощью driver.switchTo (). DefaultContent (); передаст управление основному корпусу

И используя driver.switchTo (). ParentFrame (); передаст управление в frame1.

Другие вопросы по теме