Scrivere Test per Axe DevTools per il Web per WebdriverIO

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Come scrivere test efficaci per l'accessibilità usando Axe DevTools per il Web per WebdriverIO

Not for use with personal data

Scrivere test con Axe DevTools

I singoli frammenti nelle sezioni sottostanti sono JavaScript e si compilano invariati in TypeScript. La sezione File di esempio completo fornisce il test completo in entrambe le lingue.

Prerequisiti

Per importare e inizializzare Axe DevTools per il Web, è necessario prima installarlo. Se non l'hai ancora fatto, leggi la guida su come installarlo da un pacchetto, dal tuo repository di artefatti o da Deque's Agora. È inoltre necessario avere WebdriverIO scaricato e configurato.

Importazione e Inizializzazione

Importa sia Axe DevTools per il Web che WebdriverIO. La sintassi dipende dal linguaggio e dal sistema di moduli utilizzato nel tuo progetto. Scegli quella che corrisponde al tuo progetto:

JavaScript con moduli CommonJS

Questa è l'impostazione predefinita per un progetto Node.js senza "type": "module" nel suo package.json.

const { AxeDevToolsWebdriverIO } = require('@axe-devtools/webdriverio');
const webdriverio = require('webdriverio');

JavaScript con moduli ES

Usa questa sintassi in un progetto con "type": "module" nel suo package.json o in file .mjs.

import { AxeDevToolsWebdriverIO } from '@axe-devtools/webdriverio';
import { remote } from 'webdriverio';

TypeScript

TypeScript utilizza la stessa sintassi import dei moduli ES. @axe-devtools/webdriverio include le proprie dichiarazioni di tipo, quindi non c'è un pacchetto di @types/ separato da installare. I risultati delle scansioni sono tipizzati come AxeResults, esportati da axe-core:

import { AxeDevToolsWebdriverIO } from '@axe-devtools/webdriverio';
import { remote } from 'webdriverio';
import type { AxeResults } from 'axe-core';

Inizializzazione del Client

A questo punto, puoi inizializzare il tuo webdriver all'interno della tua funzione di test. In JavaScript:

const client = await webdriverio.remote({
  capabilities: {
    browserName: 'chrome'
  }
});

In TypeScript, il client è un WebdriverIO.Browser, che è il tipo che AxeDevToolsWebdriverIO si aspetta:

const client: WebdriverIO.Browser = await remote({
  capabilities: {
    browserName: 'chrome'
  }
});

Quindi, puoi inizializzare Axe DevTools per il Web con il client webdriver. Questa dichiarazione è la stessa in entrambi i linguaggi:

const axeDevTools = new AxeDevToolsWebdriverIO({ client });

Ottenere il Contesto di Scansione

Prima di poter scansionare una pagina per l'accessibilità, deve essere accessibile tramite WebdriverIO.

await client.url('<URL>');

Una volta che WebdriverIO ha accesso alla pagina, puoi scansionarla con Axe DevTools e salvare i risultati. Il modo più semplice per visualizzare i risultati della scansione è registrare il risultato nella console.

const results = await axeDevTools.analyze();
console.log(results);

File di Esempio Completo

Lo stesso test è mostrato qui di seguito in JavaScript e in TypeScript. L'API di Axe DevTools è identica in entrambi; la versione TypeScript utilizza la sintassi import e annota il client e i risultati della scansione.

JavaScript

const webdriverio = require('webdriverio');
const { AxeDevToolsWebdriverIO } = require('@axe-devtools/webdriverio');

const simpleExample = async () => {
  const client = await webdriverio.remote({
    capabilities: {
      browserName: 'chrome'
    }
  });

  await client.url('https://google.com');

  const axeDevTools = new AxeDevToolsWebdriverIO({ client });
  const results = await axeDevTools.analyze();
  await client.deleteSession();
  return results;
};

simpleExample()
  .then(results => {
    console.log(results);
  })
  .catch(err => {
    throw err;
  });

TypeScript

import { remote } from 'webdriverio';
import { AxeDevToolsWebdriverIO } from '@axe-devtools/webdriverio';
import type { AxeResults } from 'axe-core';

const simpleExample = async (): Promise<AxeResults> => {
  const client: WebdriverIO.Browser = await remote({
    capabilities: {
      browserName: 'chrome'
    }
  });

  await client.url('https://google.com');

  const axeDevTools = new AxeDevToolsWebdriverIO({ client });
  const results: AxeResults = await axeDevTools.analyze();
  await client.deleteSession();
  return results;
};

simpleExample()
  .then(results => {
    console.log(results);
  })
  .catch(err => {
    throw err;
  });

Prossimi Passi

Ora che hai completato con successo una scansione per l'accessibilità, sei pronto per passare a argomenti di scansione più avanzati come generare report e utilizzare l'oggetto risultati.

Risoluzione dei Problemi

Se hai difficoltà a ottenere i risultati della scansione, contatta direttamente il tuo rappresentante Deque, contattaci tramite la nostra assistenza, o inviarci un'email. Saremo felici di aiutarti.