В чем разница между двумя методами:
driver.switchTo().parentFrame();
driver.switchTo().defaultContent();




Согласно спецификациям, driver.switchTo().parentFrame(); вызывает следующее:
Где команда Переключиться на родительский фрейм устанавливает текущий контекст просмотра для будущих команд равным родитель из текущий контекст просмотра.
Согласно методу Документы JavaparentFrame() изменяет фокус на родительский контекст. Если текущий контекст является контекстом просмотра верхнего уровня, контекст остается неизменным.
Согласно методу Документы Java, метод defaultContent() выбирает либо первый фрейм на странице, либо основной документ, если страница содержит фреймы.
Разница явно есть:
Сценарий: Когда есть несколько кадров и некоторые из них вложены.
iframeMain
iframeParent
iframechild
Предположим, вы находитесь в ifrmaechild:
Когда вы сделаете driver.switchTo().parentFrame();: вы перейдете к iframeParent .
Но когда вы сделаете driver.switchTo().defaultContent();: вы перейдете в основной HTML-код страницы.
Обратите внимание, что в этом случае вы не перейдете к iframeMain.
driver.switchTo (). defaultContent (); в этом случае фокус переместится на родительский фрейм всех вложенных фреймов. Например, у меня есть кадры i1, i2, i3, которые являются вложенными кадрами. в этом случае, если я использую content () по умолчанию, когда фокусируюсь на i3, он перемещается в кадр i1.
если вы используете driver.switchTo().defaultContent(); из i3, вы будете перемещены в главное дерево HTML DOM.
Когда вы имеете дело с несколькими фреймами 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.
Это означает, например, если у меня есть 3 кадра, которые являются вложенными кадрами i1, i2, i3. Если мой курсор сейчас находится в i3. Используя parentframe (), я могу достичь i2, а я могу достичь i1, используя defaultcontent ()