Aller au contenu principal

Capacités

Une capacité est une définition pour une interface distante. Elle aide WebdriverIO à comprendre dans quel environnement de navigateur ou mobile vous souhaitez exécuter vos tests. Les capacités sont moins cruciales lors du développement de tests en local, car vous les exécutez généralement sur une seule interface distante, mais elles deviennent plus importantes lors de l'exécution d'un grand ensemble de tests d'intégration dans un environnement CI/CD.

info

Le format d'un objet de capacité est bien défini par la spécification WebDriver. Le testrunner WebdriverIO échouera rapidement si les capacités définies par l'utilisateur ne respectent pas cette spécification.

Capacités personnalisées

Bien que le nombre de capacités définies de manière fixe soit très faible, chacun peut fournir et accepter des capacités personnalisées spécifiques au pilote d'automatisation ou à l'interface distante :

Extensions de capacités spécifiques aux navigateurs

  • goog:chromeOptions : extensions Chromedriver, applicables uniquement pour les tests dans Chrome
  • moz:firefoxOptions : extensions Geckodriver, applicables uniquement pour les tests dans Firefox
  • ms:edgeOptions : EdgeOptions pour spécifier l'environnement lors de l'utilisation d'EdgeDriver pour tester Chromium Edge

Extensions de capacités des fournisseurs cloud

Extensions de capacités des moteurs d'automatisation

Capacités WebdriverIO pour gérer les options du pilote de navigateur

WebdriverIO gère l'installation et l'exécution du pilote de navigateur pour vous. WebdriverIO utilise une capacité personnalisée qui vous permet de transmettre des paramètres au pilote.

wdio:chromedriverOptions

Options spécifiques transmises à Chromedriver lors de son démarrage.

wdio:geckodriverOptions

Options spécifiques transmises à Geckodriver lors de son démarrage.

wdio:edgedriverOptions

Options spécifiques transmises à Edgedriver lors de son démarrage.

wdio:safaridriverOptions

Options spécifiques transmises à Safari lors de son démarrage.

wdio:maxInstances

Nombre maximum total de travailleurs parallèles pour le navigateur/capacité spécifique. Prend la priorité sur maxInstances et maxInstancesPerCapability.

Type : number

wdio:specs

Définit les spécifications pour l'exécution des tests pour ce navigateur/capacité. Identique à l'option de configuration specs régulière, mais spécifique au navigateur/capacité. Prend la priorité sur specs.

Type : (String | String[])[]

wdio:exclude

Exclut les spécifications de l'exécution des tests pour ce navigateur/capacité. Identique à l'option de configuration exclude régulière, mais spécifique au navigateur/capacité. Prend la priorité sur exclude.

Type : String[]

wdio:enforceWebDriverClassic

Par défaut, WebdriverIO tente d'établir une session WebDriver Bidi. Si vous ne préférez pas cela, vous pouvez définir ce drapeau pour désactiver ce comportement.

Type : boolean

Options de pilote communes

Bien que tous les pilotes offrent différents paramètres de configuration, il existe certains paramètres communs que WebdriverIO comprend et utilise pour configurer votre pilote ou navigateur :

cacheDir

Le chemin vers la racine du répertoire de cache. Ce répertoire est utilisé pour stocker tous les pilotes téléchargés lors de la tentative de démarrage d'une session.

Type : string
Par défaut : process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()

binary

Chemin vers un binaire de pilote personnalisé. Si défini, WebdriverIO ne tentera pas de télécharger un pilote mais utilisera celui fourni par ce chemin. Assurez-vous que le pilote est compatible avec le navigateur que vous utilisez.

Vous pouvez fournir ce chemin via les variables d'environnement CHROMEDRIVER_PATH, GECKODRIVER_PATH ou EDGEDRIVER_PATH.

Type : string

attention

Si le binary du pilote est défini, WebdriverIO ne tentera pas de télécharger un pilote mais utilisera celui fourni par ce chemin. Assurez-vous que le pilote est compatible avec le navigateur que vous utilisez.

Options de pilote spécifiques au navigateur

Pour propager des options au pilote, vous pouvez utiliser les capacités personnalisées suivantes :

  • Chrome ou Chromium : wdio:chromedriverOptions
  • Firefox : wdio:geckodriverOptions
  • Microsoft Edge : wdio:edgedriverOptions
  • Safari : wdio:safaridriverOptions
adbPort

Le port sur lequel le pilote ADB doit s'exécuter.

Exemple : 9515

Type : number

urlBase

Préfixe de chemin URL de base pour les commandes, par exemple wd/url.

Exemple : /

Type : string

logPath

Écrire le journal du serveur dans un fichier au lieu de stderr, augmente le niveau de journalisation à INFO

Type : string

logLevel

Définir le niveau de journalisation. Options possibles ALL, DEBUG, INFO, WARNING, SEVERE, OFF.

Type : string

verbose

Journalisation verbeuse (équivalent à --log-level=ALL)

Type : boolean

silent

Ne rien journaliser (équivalent à --log-level=OFF)

Type : boolean

appendLog

Ajouter au fichier journal au lieu de le réécrire.

Type : boolean

replayable

Journalisation verbeuse sans tronquer les longues chaînes pour que le journal puisse être rejoué (expérimental).

Type : boolean

readableTimestamp

Ajouter des horodatages lisibles au journal.

Type : boolean

enableChromeLogs

Afficher les journaux du navigateur (remplace les autres options de journalisation).

Type : boolean

bidiMapperPath

Chemin du mappeur bidi personnalisé.

Type : string

allowedIps

Liste d'adresses IP distantes autorisées à se connecter à EdgeDriver, séparées par des virgules.

Type : string[]
Par défaut : ['']

allowedOrigins

Liste d'origines de requêtes autorisées à se connecter à EdgeDriver, séparées par des virgules. L'utilisation de * pour autoriser n'importe quelle origine d'hôte est dangereuse !

Type : string[]
Par défaut : ['*']

spawnOpts

Options à transmettre au processus du pilote.

Type : SpawnOptionsWithoutStdio | SpawnOptionsWithStdioTuple<StdioOption, StdioOption, StdioOption>
Par défaut : undefined

Capacités spéciales pour des cas d'utilisation spécifiques

Voici une liste d'exemples montrant quelles capacités doivent être appliquées pour atteindre un cas d'utilisation particulier.

Exécuter un navigateur en mode headless

Exécuter un navigateur en mode headless signifie exécuter une instance de navigateur sans fenêtre ni interface utilisateur. Cela est principalement utilisé dans les environnements CI/CD où aucun affichage n'est utilisé. Pour exécuter un navigateur en mode headless, appliquez les capacités suivantes :

{
browserName: 'chrome', // ou 'chromium'
'goog:chromeOptions': {
args: ['headless', 'disable-gpu']
}
}

Automatiser différents canaux de navigateur

Si vous souhaitez tester une version de navigateur qui n'est pas encore publiée en version stable, par exemple Chrome Canary, vous pouvez le faire en définissant des capacités et en pointant vers le navigateur que vous souhaitez démarrer, par exemple :

Lors des tests sur Chrome, WebdriverIO téléchargera automatiquement la version de navigateur et le pilote souhaités en fonction du browserVersion défini, par exemple :

{
browserName: 'chrome', // ou 'chromium'
browserVersion: '116' // ou '116.0.5845.96', 'stable', 'dev', 'canary', 'beta' ou 'latest' (identique à 'canary')
}

Si vous souhaitez tester un navigateur téléchargé manuellement, vous pouvez fournir un chemin binaire vers le navigateur via :

{
browserName: 'chrome', // ou 'chromium'
'goog:chromeOptions': {
binary: '/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary'
}
}

De plus, si vous souhaitez utiliser un pilote téléchargé manuellement, vous pouvez fournir un chemin binaire vers le pilote via :

{
browserName: 'chrome', // ou 'chromium'
'wdio:chromedriverOptions': {
binary: '/path/to/chromdriver'
}
}

Welcome! How can I help?

WebdriverIO AI Copilot