Aller au contenu principal

switchFrame

Bascule le contexte actif vers un cadre, par exemple un iframe sur la page. Il existe plusieurs façons d'interroger un cadre sur la page :

  • Si une chaîne est donnée, il bascule vers le cadre avec un identifiant de contexte correspondant, une URL ou une URL qui contient cette chaîne

    // basculer vers un cadre qui a une URL spécifique ou contient une chaîne dans l'URL
    await browser.url('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe')
    // Remarque : ce cadre se trouve dans un iframe imbriqué, mais vous n'avez besoin de fournir
    // que l'URL du cadre de votre choix
    await browser.switchFrame('https://www.w3schools.com')
    // vérifier le titre de la page
    console.log(await browser.execute(() => [document.title, document.URL]))
    // affiche : [ 'W3Schools Online Web Tutorials', 'https://www.w3schools.com/' ]
  • Si vous avez l'identifiant de contexte du cadre, vous pouvez l'utiliser directement

    // basculer vers un cadre qui a un certain identifiant de contexte
    await browser.switchFrame('A5734774C41F8C91D483BDD4022B2EF3')
  • Si un élément WebdriverIO référençant un élément iframe est fourni, il basculera vers ce cadre

    // basculer vers un élément de cadre interrogé depuis le contexte actuel
    await browser.switchFrame($('iframe'))
  • Si une fonction est donnée, elle parcourra tous les iframes de la page et appellera la fonction dans l'objet de contexte. La fonction doit renvoyer un booléen indiquant si le cadre doit être sélectionné. La fonction sera exécutée dans le navigateur et permet d'accéder à toutes les API Web, par exemple :

    // basculer vers le premier cadre qui contient un élément avec l'id "#frameContent"
    await browser.switchFrame(() => Boolean(document.querySelector('#frameContent')))
    // basculer vers le premier cadre qui contient "webdriver" dans l'URL
    await browser.switchFrame(() => document.URL.includes('webdriver'))
  • Si null est donné, il basculera vers le cadre de niveau supérieur

    // d'abord basculer dans un cadre
    await browser.switchFrame($('iframe'))
    // faire plus d'automatisation dans ce cadre, puis...

    // basculer vers le cadre de niveau supérieur
    await browser.switchFrame(null)

Une fois que vous avez basculé vers un cadre, toutes les commandes ultérieures seront exécutées dans le contexte de ce cadre, y compris la navigation vers différentes pages.

Utilisation
browser.switchFrame(context)
Paramètres
NomTypeDétails
contextstring, object, function
Retourne
  • <Promise<string>> returns: l'identifiant du contexte actif actuel

Welcome! How can I help?

WebdriverIO AI Copilot