Beheer Uw Scans
De handmatige modus van Watcher stelt u in staat te kiezen wanneer of welke pagina's van uw site worden geanalyseerd op toegankelijkheidsproblemen
Standaard, in wat bekend staat als automatische modus, bepaalt Axe Watcher automatisch wanneer een webpagina geanalyseerd moet worden (of deze nu bezocht wordt door je testomgeving of gebaseerd is op gedetecteerde wijzigingen in de DOM van de pagina). Soms resulteert deze automatische analyse in gedrag dat niet compatibel is met de doelstellingen van je organisatie: het analyseren van te veel pagina's (pagina's waar je geen belang bij hebt of pagina's die tot andere afdelingen binnen je organisatie behoren). Je kunt de automatische modus uitschakelen, zodat je zelf kunt bepalen wanneer (of of) een webpagina geanalyseerd moet worden (bekend als handmatige modus).
Scenario's
Delen van een Website Scannen
U kunt de handmatige modus gebruiken om slechts een deel van een website te scannen. Bijvoorbeeld, als uw team verantwoordelijk is voor de winkelwagentje-functie op uw site, maar uw testsuite cataloguspagina's moet bezoeken (die uw team niet beheert) om producten aan het winkelwagentje toe te voegen, wilt u waarschijnlijk voorkomen dat de toegankelijkheid van de cataloguspagina's wordt getest. Zodra u de winkelwagentjepagina heeft bereikt in uw testsuite, kunt u automatische analyse weer inschakelen. Daarna, wanneer de tests van het winkelwagentje zijn voltooid, kunt u automatische analyse opnieuw uitschakelen.
Volgende Stappen
- Automatische Analyse in Configuratie Uitschakelen om te voorkomen dat de cataloguspagina's worden getest.
- Automatische Analyse Inschakelen voor uw winkelwagentjepagina.
- Automatische Analyse Uitschakelen via een Oproep aan het einde van het testen van uw winkelwagentjepagina om te voorkomen dat pagina's die na de winkelwagentjepagina worden bezocht, worden getest.
Dynamisch Laden van Inhoud
U kunt de handmatige modus gebruiken om te voorkomen dat pagina's met complexe laadvormen worden getest. Als de pagina die u wilt testen dynamisch veel resources op de achtergrond laadt, kunt u de automatische modus uitschakelen totdat deze volledig is geladen. Dit beperkt de toegankelijkheidsproblemen tot die welke alleen bestaan wanneer de pagina volledig is geladen. Het voorkomt ook toegankelijkheidscontroles tijdens laadanimaties of andere laad-UI.
Volgende Stappen
- Automatische Analyse in Configuratie Uitschakelen zodat de laadanimaties en UI niet worden getest op toegankelijkheidsfouten.
- Automatische Analyse Inschakelen om de automatische toegankelijkheidstest opnieuw te starten zodra de pagina volledig geladen is.
Specifieke Pagina Statussen Vangen
Als u ervoor wilt zorgen dat een specifieke paginastatus wordt gescand, kunt u handmatig een toegankelijkheidsanalyse starten nadat u uw pagina heeft ingesteld.
Volgende Stappen
- Automatische Analyse in Configuratie Uitschakelen om te voorkomen dat de toegankelijkheidsanalyse plaatsvindt voordat de pagina in de gewenste staat is.
- Pagina's Handmatig Analyseren om de specifieke paginastatus te testen waarin u geïnteresseerd bent.
Het Bereiken van een Beperkte Omvang van een Grote Testsuite
Door automatische analyse uit te schakelen, kunt u een grotere, meer uitgebreide testsuite gebruiken maar uw toegankelijkheidstesten beperken tot slechts een deel daarvan. In dit geval hoeft u uw grotere testsuite niet in kleinere testsuites op te splitsen en alleen toegankelijkheidstesten uit te voeren in de testsuites die voor u belangrijk zijn.
Volgende Stappen
- Automatische Analyse in Configuratie Uitschakelen om te voorkomen dat automatische toegankelijkheidsanalyse aan het begin van uw testsuite start.
- Automatische Analyse Inschakelen wanneer u het deel van uw testsuite bereikt dat u wilt testen.
- Automatische Analyse Uitschakelen via een Oproep om toegankelijkheidstests voor delen van de testsuite die u niet wilt testen op toegankelijkheidsfouten, uit te schakelen.
Hoe de Handmatige Modus te Gebruiken
U kunt automatische analyse uitschakelen in uw configuratie (zie Automatische Analyse in Configuratie Uitschakelen hieronder).
Paginianalyse wordt gecontroleerd door drie methoden op het Controller-object of de equivalente commando's in Cypress.
analyze()(in Cypress:cy.axeWatcherAnalyze()) om een analyse van de huidige pagina uit te voeren.start()(in Cypress:cy.axeWatcherStart()) om automatische toegankelijkheidsanalyse in te schakelen.stop()(in Cypress:cy.axeWatcherStop()) om automatische toegankelijkheidsanalyse uit te schakelen.
Een Controller-Object Verkrijgen
(JavaScript/TypeScript) Voor informatie over het verkrijgen van een Controller-object, zie stap vier van de instructiepagina van uw test-framework:
JavaScript:
TypeScript:
(Java) Voor Java, zie stap drie van de instructiepagina van het testframework. Stap vier laat zien hoe u de wrappedDriver cast om de flush() methode aan te roepen:
Cypress
(JavaScript/TypeScript) Voor Cypress kunt u het globale cy-object gebruiken met deze equivalente commando's:
| Controller-methode | Cypress-opdracht |
|---|---|
analyse() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
Playwright Test
(JavaScript/TypeScript) Voor Playwright Test kan het Controller-object (PlaywrightController) worden verkregen van page, dat een axeWatcher-object bevat. U kunt het axeWatcher-object gebruiken om de Controller-methoden aan te roepen (onderstaand voorbeeld is in TypeScript):
import { test, expect } from './fixtures'
test('example test', async ({ page }) => {
await page.goto('https://example.com')
await page.axeWatcher.analyze()
})Automatische Analyse in Configuratie Uitschakelen
U kunt automatische toegankelijkheidstesten uitschakelen door
- (JavaScript/TypeScript) De
autoAnalyzeeigenschap op de axe configuratie-object instellen opfalse. - (Java) De
setAutoAnalyze()methode aanroepen metfalse.
(JavaScript/TypeScript) Bijvoorbeeld, stel autoAnalyze in op false in uw configuratie (de regel is gemarkeerd in het onderstaande Cypress JavaScript-voorbeeld):
const { defineConfig } = require('cypress');
const { cypressConfig } = require('@axe-core/watcher/cypress/config');
const API_KEY = process.env.API_KEY
const PROJECT_ID = process.env.PROJECT_ID
module.exports = defineConfig(
cypressConfig({
axe: {
apiKey: API_KEY, projectId: PROJECT_ID,
autoAnalyze: false
},
// Your existing Cypress configuration code here
})
);Automatische Analyse Uitschakelen via een Oproep
Met Cypress kunt u de axeWatcherStop()-opdracht gebruiken:
cy.axeWatcherStop()(JavaScript/TypeScript) De andere testintegraties gebruiken de stop() methode op uw Controller-object:
await controller.stop()(Java) In de Java Watcher-integratie gebruikt u de AxeWatcherController.stop() methode.
Zie Een Controller-Object Verkrijgen voor meer informatie over het verkrijgen van een controller-object voor uw testframework.
Pagina's Handmatig Analyseren
Nadat u automatische analyse hebt uitgeschakeld, kunt u oproepen toevoegen aan (JavaScript/TypeScript) axeWatcherAnalyze() (voor Cypress) of analyze() (met de andere testintegraties). (Java) Voor Java gebruikt u de AxeWatcherController.analyze()](wa-java-watchercontroller#analyze) methode.
Bijvoorbeeld, voor Cypress:
describe('My Login Application', () => {
it('should login with valid credentials', () => {
cy.visit('https://the-internet.herokuapp.com/login')
// Analyze the page.
.axeWatcherAnalyze() .get('#username')
.type('tomsmith')
.get('#password')
.type('SuperSecretPassword!')
.get('button[type="submit"]')
.click()
.wait(1000)
// Analyze the page.
.axeWatcherAnalyze() // Restart automatic axe analysis.
.axeWatcherStart()
.get('#flash')
.should('exist')
})
})Zie Een Controller-Object Verkrijgen voor meer informatie over het verkrijgen van een controller-object voor uw testframework.
Automatische Analyse Inschakelen
Met Cypress kunt u de axeWatcherStart-opdracht gebruiken:
cy.axeWatcherStart()De andere testintegraties gebruiken de start methode op uw Controller-object:
await controller.start()Zie Een Controller-Object Verkrijgen voor meer informatie over het verkrijgen van een controller-object voor uw testframework.
Watcher Alleen Uitvoeren op Specifieke Testuitvoeringen
End-to-end tests kunnen duur zijn in tijd of cloud computing-kosten. U wilt misschien niet dat Watcher pagina's analyseert bij elke wijziging in de code of bij elke testuitvoering, maar alleen wanneer u expliciet een toegankelijkheidsscan wenst. U kunt analyse achter een omgevingsvariabele plaatsen door de waarde van de variabele door te geven aan autoAnalyze. Dit geeft u twee verschillende testcommando's: één zonder analyse en één met analyse.
(JavaScript/TypeScript) Bijvoorbeeld, in een Cypress-configuratie:
const { defineConfig } = require('cypress')
const { cypressConfig } = require('@axe-core/watcher/cypress/config')
const API_KEY = process.env.API_KEY
const PROJECT_ID = process.env.PROJECT_ID
const ACCESSIBILITY_TESTING = process.env.ACCESSIBILITY_TESTING === 'true'
module.exports = defineConfig(
cypressConfig({
axe: {
apiKey: API_KEY,
projectId: PROJECT_ID,
autoAnalyze: ACCESSIBILITY_TESTING
},
// Your existing Cypress configuration code here
})
)Voeg twee scripts toe aan uw package.json, één met de variabele ingesteld, één zonder:
{
"scripts": {
"test:e2e": "cypress run",
"test:e2e:accessibility": "ACCESSIBILITY_TESTING=true cypress run"
}
}Op Windows gebruikt u cross-env om omgevingsvariabelen op een platformonafhankelijke manier in te stellen. U kunt elke naam voor een omgevingsvariabele kiezen; ACCESSIBILITY_TESTING is slechts een voorbeeld.
Dezelfde benadering geldt voor andere JavaScript- en TypeScript-testframes: lees de variabele in uw configuratiebestand en geef de booleaanse waarde door aan autoAnalyze. Java-gebruikers kunnen de waarde doorgeven aan setAutoAnalyze().
Deze aanpak bepaalt of Watcher pagina's analyseert, niet of Watcher is geïnitialiseerd. Een deel van de Watcher-instelling vindt nog steeds plaats in uw testomgeving, ongeacht de waarde van de omgevingsvariabele.
Zie ook
- (JavaScript/TypeScript) Voor twee werkende voorbeelden van tests in handmatige modus (voor Cypress en Playwright), zie de volgende voorbeelden in de watcher-voorbeelden-repo op GitHub:
- Voor Cypress, zie Cypress handmatige modus
- Voor Playwright, zie Playwright handmatige modus
