Ricerca…


Sintassi

  • Giava
  • driver.switchTo (). frame (nome stringa);
  • driver.switchTo (). frame (String 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 ();
  • Pitone
  • driver.switch_to_frame (nameOrId)
  • driver.switch_to.frame (nameOrId)
  • driver.switch_to_frame (indice)
  • driver.switch_to.frame (indice)
  • driver.switch_to_frame (frameElement)
  • driver.switch_to.frame (frameElement)
  • driver.switch_to_default_content ()
  • driver.switch_to.default_content ()
  • JavaScript
  • driver.switchTo (). telaio (nameOrId)
  • driver.switchTo (). telaio (index)
  • driver.switchTo (). defaultContent ()

Parametri

parametro dettagli
nameOrId Seleziona un frame con il suo nome di id.
indice Seleziona un frame per il suo indice a base zero.
frameElement Seleziona una cornice usando il suo WebElement precedentemente posizionato

Per passare a una cornice utilizzando Java

Per un'istanza, se il codice sorgente HTML di una vista o di un elemento html è racchiuso da un iframe come questo:

<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 />

... quindi per eseguire qualsiasi azione sugli elementi web dell'iframe, devi prima spostare lo stato attivo sull'iframe, utilizzando uno dei seguenti metodi:

Usando frame ID (dovrebbe essere usato solo se conosci l'id dell'iframe).

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

Usando il nome del frame (dovrebbe essere usato solo se conosci il nome dell'iframe).

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

L'uso di frame index (dovrebbe essere usato solo se non si ha l'id o il nome dell'iframe), dove l'indice definisce la posizione dell'iframe tra tutti i frame.

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

Nota: se nella pagina sono presenti tre frame, il primo frame sarà all'indice 0, il secondo all'indice 1 e il terzo all'indice 2.

Usando il webelement precedentemente posizionato (dovrebbe essere usato solo se hai già localizzato il frame e lo hai restituito come WebElement ).

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

Quindi, per fare clic sull'ancora Red Ball :

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

Per uscire da una cornice usando Java

Per spostare lo stato attivo su un documento principale o il primo fotogramma della pagina. Devi usare la sintassi qui sotto.

driver.switchTo().defaultContent();

Passa a una cornice usando C #

1. Passa a una cornice per Indice.

Qui stiamo passando all'indice 1. L'indice si riferisce all'ordine dei frame sulla pagina. Questo dovrebbe essere usato come ultima risorsa, in quanto id frame o nomi sono molto più affidabili.

driver.SwitchTo().Frame(1);

2. Passa a un frame per nome

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

3. Passa a una cornice per Titolo, Id o altri passando IWebElement

Se vuoi passare a un frame per ID o titolo devi passare in un elemento web come parametro:

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

Tieni inoltre presente che se la cornice impiega alcuni secondi per venire visualizzata, potresti dover utilizzare un'attesa :

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

Esci da una cornice:

driver.SwitchTo().DefaultContent()

Per uscire da una cornice usando C #

Per spostare lo stato attivo su un documento principale o il primo fotogramma della pagina. Devi usare la sintassi qui sotto.

. WebDriver.SwitchTo () DefaultContent ();

Passa tra i frame secondari di un frame principale.

Considera di avere un frame padre (frame-padre). e 2 frame figlio (Frame_Son, Frame_Daughter). Vediamo le varie condizioni e come gestirle.

1. Da genitore a figlio o figlia:

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

2. Da Figlio a padre: se genitore è frame predefinito, passa al frame predefinito, altrimenti dal frame switch predefinito al frame principale. Ma non puoi passare direttamente da figlio a genitore.

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

3. Da figlio a figlia: se tua sorella commette qualche errore non urlare contro di lei, rivolgiti semplicemente al tuo genitore. Allo stesso modo, dai il controllo al frame principale e poi al frame figlia.

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

Attendi il caricamento dei frame

In alcuni casi il tuo frame potrebbe non essere visualizzato immediatamente e probabilmente dovrai attendere fino al momento del caricamento. Oppure avrai NoSuchFrameException.

Quindi è sempre una buona scelta aspettare prima di cambiare. Di seguito è un modo ideale per attendere fino a quando viene caricato un frame.

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

// genera un'eccezione solo se il frame non è visibile con il tempo di attesa di 300 secondi}



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow