Zoeken…


Syntaxis

  • Java
  • driver.switchTo (). frame (tekenreeksnaam);
  • driver.switchTo (). frame (tekenreeks-id);
  • driver.switchTo (). frame (int index);
  • driver.switchTo (). frame (WebElement frameElement);
  • . Driver.switchTo () defaultContent ();
  • C #
  • driver.SwitchTo (). Frame (int frameIndex);
  • driver.SwitchTo (). Frame (IWebElement frameElement);
  • driver.SwitchTo (). Frame (string frameName);
  • . Driver.SwitchTo () DefaultContent ();
  • Python
  • driver.switch_to_frame (nameOrId)
  • driver.switch_to.frame (nameOrId)
  • driver.switch_to_frame (index)
  • driver.switch_to.frame (index)
  • driver.switch_to_frame (frameElement)
  • driver.switch_to.frame (frameElement)
  • driver.switch_to_default_content ()
  • driver.switch_to.default_content ()
  • JavaScript
  • driver.switchTo (). gestel (nameOrId)
  • driver.switchTo (). gestel (index)
  • driver.switchTo () defaultContent. ()

parameters

parameter gegevens
nameOrId Selecteer een frame met de naam van het ID.
inhoudsopgave Selecteer een frame op basis van de op nul gebaseerde index.
frameElement Selecteer een frame met behulp van het eerder geplaatste WebElement

Overschakelen naar een frame met Java

Als de HTML-broncode van een HTML-weergave of -element bijvoorbeeld is ingepakt door een iframe zoals deze:

<iframe src="../images/eightball.gif" name="imgboxName" id="imgboxId">
   <p>iframes example</p>
   <a href="../images/redball.gif" target="imgbox">Red Ball</a>
</iframe><br />

... om vervolgens enige actie op de web-elementen van het iframe uit te voeren, moet u eerst de focus naar het iframe schakelen, met behulp van een van de volgende methoden:

Frame-ID gebruiken (mag alleen worden gebruikt als u de id van het iframe kent).

driver.switchTo().frame("imgboxId"); //imgboxId - Id of the frame

Framenaam gebruiken (mag alleen worden gebruikt als u de naam van het iframe kent).

driver.switchTo().frame("imgboxName"); //imgboxName - Name of the frame

Frame-index gebruiken (mag alleen worden gebruikt als u niet de id of naam van het iframe heeft), waarbij de index de positie van het iframe tussen alle frames definieert.

driver.switchTo().frame(0); //0 - Index of the frame

Opmerking: als u drie frames op de pagina hebt, bevindt het eerste frame zich op index 0, het tweede op index 1 en het derde op index 2.

Gebruik van eerder geplaatst webelement (mag alleen worden gebruikt als u het frame al hebt gevonden en als WebElement hebt geretourneerd).

driver.switchTo().frame(frameElement); //frameElement - webelement that is the frame

Dus, om op het Red Ball anker te klikken:

driver.switchTo().frame("imgboxId");
driver.findElement(By.linkText("Red Ball")).Click();

Met Java uit beeld komen

Om de focus naar het hoofddocument of het eerste frame van de pagina te schakelen. U moet de onderstaande syntaxis gebruiken.

driver.switchTo().defaultContent();

Schakel naar een frame met C #

1. Schakel over naar een frame met Index.

Hier schakelen we over naar index 1. Index verwijst naar de volgorde van de frames op de pagina. Dit moet als laatste redmiddel worden gebruikt, omdat frame-ID of namen veel betrouwbaarder zijn.

driver.SwitchTo().Frame(1);

2. Schakel naar een frame op naam

driver.SwitchTo().Frame("Name_Of_Frame");

3. Schakel naar een frame op titel, ID of anderen door IWebElement te passeren

Als u op id of titel naar een frame wilt overschakelen, moet u een webelement als parameter doorgeven:

driver.SwitchTo().Frame(driver.FindElement(By.Id("ID_OF_FRAME")));
driver.SwitchTo().Frame(driver.FindElement(By.CssSelector("iframe[title='Title_of_Frame']")));

Houd er ook rekening mee dat als je een paar seconden nodig hebt om omhoog te komen, je misschien even moet wachten :

new WebDriverWait(driver, TimeSpan.FromSeconds(10))
    .Until(ExpectedConditions.ElementIsVisible(By.Id("Id_Of_Frame")));

Ga uit een frame:

driver.SwitchTo().DefaultContent()

Om uit een frame te komen met C #

Om de focus naar het hoofddocument of het eerste frame van de pagina te schakelen. U moet de onderstaande syntaxis gebruiken.

. WebDriver.SwitchTo () DefaultContent ();

Schakel tussen kindkaders van een ouderframe.

Overweeg dat u een ouderframe (frame-ouder) hebt. en 2 onderliggende frames (Frame_Son, Frame_Daughter). Laten we verschillende voorwaarden bekijken en weten hoe we ermee moeten omgaan.

1. van ouder op zoon of dochter:

 driver.switchTo().frame("Frame_Son");
 driver.switchTo().frame("Frame_Daughter");

2. Van zoon naar ouder: als bovenliggend standaardframe is, schakelt u over naar standaardframe, anders van standaardframe-overschakeling naar bovenliggend frame. Maar u kunt niet rechtstreeks overschakelen van zoon naar ouder.

driver.switchTo().defaultContent(); 
driver.switchTo().frame("Frame_Parent");

3. Van zoon tot dochter: als je zus een fout maakt, schreeuw dan niet naar haar, neem gewoon contact op met je ouder. Op dezelfde manier geef je controle over het ouderframe en vervolgens over het dochterframe.

driver.switchTo().defaultContent(); 
driver.switchTo().frame("Frame_Parent");
driver.switchTo().frame("Frame_Daughter");

Wacht tot je frames zijn geladen

In heel wat gevallen wordt uw frame mogelijk niet meteen weergegeven en moet u waarschijnlijk wachten tot het is geladen om te schakelen. Of anders heb je NoSuchFrameException.

Het is dus altijd een goede keuze om te wachten voordat je overschakelt. Volgen is een ideale manier om te wachten tot een frame is geladen.

try{
        new WebDriverWait(driver, 300).ignoring(StaleElementReferenceException.class).
                        ignoring(WebDriverException.class).
                        until(ExpectedConditions.visibilityOf((driver.findElement(By.id("cpmInteractionDivFrame"))));}
    catch{

// gooit alleen uitzondering als uw frame niet zichtbaar is met in uw wachttijd 300 seconden}



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow