Problemen oplossen

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

Veelvoorkomende problemen en oplossingen met Axe Watcher

Not for use with personal data

Watcher Ondersteunt Alleen Chrome voor Testen of Chromium

Hoewel de website van axe Developer Hub verschillende browsers ondersteunt, ondersteunt het Watcher-pakket alleen Google Chrome voor Testen of Chromium. Problemen die u kunt tegenkomen:

  • Als u Chrome versie 139 of nieuwer gebruikt, ontvangt u een fout van Watcher. Gebruik in plaats daarvan Chrome voor Testen of Chromium.
  • Als u de Electron-browser van Cypress gebruikt, ontvangt u een fout. Specificeer de browser als Chrome voor Testen of Chromium wanneer u Cypress oproept; anders wordt standaard de Electron-browser gebruikt. Zie Browsers starten in de Cypress-documentatie voor meer informatie.

Als u WebdriverIO, WebDriverJS of Java Selenium gebruikt, moet u uw testconfiguratie expliciet instellen om Chrome voor Testen te gebruiken. Zie Gebruik Chrome voor Testen voor installatie-instructies en platform-specifieke configuratievoorbeelden.

Zie Geautomatiseerde Testplatforms voor meer informatie over ondersteunde software met Watcher.

Onvolledige Resultaten

Als uw testsuite meerdere testrunners gebruikt die parallel lopen en dezelfde niet-nul build-ID gebruiken, zullen de resultaten van elke testrunner de resultaten van andere testrunners voor dezelfde Git commit SHA vervangen, wat onvolledige resultaten oplevert. U moet ervoor zorgen dat elke testrunner dezelfde niet-nul build-ID gebruikt.

important
  • JavaScript/TypeScript: buildID (hoofdletters D)
  • Java: buildId (kleine letters d)

U stelt de build-ID meestal in uw AxeConfiguration.

Voor meer informatie over het gebruik van parallelle testrunners met verschillende CI/CD-platforms, zie Tests Parallel uitvoeren.

Dubbele Toegankelijkheidsfouten of Verkeerde Telling van Nieuwe Problemen

Als uw website dynamische ID's of klassenamen gebruikt die veranderen telkens als de pagina wordt vernieuwd, zult u waarschijnlijk dubbele toegankelijkheidsfouten zien, vooral problemen gemarkeerd als nieuw wanneer eerdere testruns hetzelfde probleem op hetzelfde element vertonen. (Axe Developer Hub gebruikt ID's en klassen om hetzelfde element tussen testruns te identificeren.) Om dit probleem op te lossen, moet u de ancestry eigenschap in het runOptions object in uw configuratie instellen op true. Het onderstaande voorbeeld laat zien hoe u de optie in uw configuratie instelt:

axe: {
  runOptions: {
    ancestry: true
  }
}

Zie Gebruik van Dynamische Selectors voor meer begeleiding over het gebruik van dynamische selectors.

Zie (JavaScript/TypeScript) runOptions of (Java) AxeWatcherOptions.setRunOptions() voor meer informatie.

Oude versie van @axe-core/watcher

Als je versie 3.18.0 of ouder van @axe-core/watcher gebruikt, zul je deze waarschuwingsmelding ontvangen:

Schermafbeelding van het bericht dat verschijnt wanneer het @axe-core/watcher-pakket te oud is om globale configuraties te ondersteunen

Axe Developer Hub houdt zich nu aan de instellingen gedefinieerd in axe Configuratie, en testruns gecreëerd met versies van @axe-core/watcher van versie 3.18.0 of ouder genereren sessies die geen weet hadden van de globale instellingen in de axe Configuratie. Je moet je @axe-core/watcher-pakket bijwerken en je tests opnieuw uitvoeren om sessies te creëren die de axe Configuratie van je onderneming volgen. Zie Gebruik van globale configuraties.

Controller methode time-out

important

Java Watcher stelt je momenteel niet in staat om de time-outwaarden te wijzigen.

(Alleen JavaScript of TypeScript) Je zult een soortgelijk bericht als het volgende ontvangen als oproepen naar de Controller-methoden (gedefinieerd in de Controller abstracte basisklasse als analyze(), flush(), start(), en stop()) of Cypress-aangepaste commando's verlopen:

Error: Watcher could not send results to the server. To resolve this problem, adjust your `timeout.flush` property within your configuration or see https://docs.deque.com/developer-hub/wa-troubleshooting for more troubleshooting.

De gespecificeerde Controller methode (hier, de flush() methode) had meer dan de standaardtijd nodig om te voltooien en liep af. Je kunt de standaardtijd wijzigen door een timeout object toe te voegen aan je configuratie:

axe: {
  timeout: {
    flush: 10000
  }
}
important

Deze time-outwaarden zijn onafhankelijk van het testframework dat je gebruikt, en je moet mogelijk ook de time-outwaarden voor dat framework verhogen.

Zie Time-outs instellen voor informatie over het gebruik van time-outs.

Zie Timeouts Interface en timeouts voor meer informatie. De standaard time-outwaarden worden weergegeven in de tabel onder de Timeouts Interface.

Resultaten verschijnen niet

Als je je testsuite hebt uitgevoerd en er worden geen resultaten weergegeven in axe Developer Hub voor een bepaald project, kan de oorzaak worden gevonden tussen de redenen in de volgende secties:

axe Watcher niet configureren

Je gewijzigde testsuite moet de juiste configuratiefunctie voor je testframework aanroepen voordat je je tests uitvoert. Als je axe Watcher niet goed configureert, ontvang je een bericht dat je axe Watcher moet configureren. Bijvoorbeeld, als je vergeet om axe Watcher met Cypress te configureren, zie je dit bericht wanneer je je testsuite uitvoert:

Cypress is not configured for axe Watcher. Please ensure that axe Watcher's cypressConfig() is invoked within Cypress's defineConfig() in your cypress.config.js. All tests will fail with this error.

Raadpleeg de configuratie instructies voor configuratievoorbeelden voor je taal en browser-testframework.

Resultaten niet doorspoelen

Je moet de flush() functie (of het aangepaste commando axeWatcherFlush() in Cypress) aanroepen om de verzamelde resultaten terug te sturen naar de servers van Deque zodat de resultaten op de axe Developer Hub-website kunnen worden gepresenteerd. Meestal roep je de flush() functie aan in de cleanup hook van je automatiseringsplatform.

Bijvoorbeeld, in het bestand support/e2e.js in Cypress voeg je de oproep toe aan afterEach():

// Flush axe-watcher results after each test.
afterEach(() => {
  cy.axeWatcherFlush()
})

De --incognito Optie Gebruiken

Je kunt de --incognito opdrachtregeloptie niet gebruiken met Chrome; anders zullen je tests stilletjes mislukken. Als je de incognito-modus gebruikt om te voorkomen dat gecachte bestanden op de schijf worden geschreven (gecachte bestanden worden alleen in het geheugen bewaard in de incognito-modus), gebruik dan in plaats daarvan de cachemethoden van je testsuite.

De Vereiste Omgevingsvariabelen Niet Instellen

Als je experimenteert met de voorbeelden in de watcher-examples repo op GitHub, merk op dat de voorbeelden gebruik maken van omgevingsvariabelen voor het instellen van de API-sleutel en project-ID, API_KEY en PROJECT_ID.

Testen Worden Te Snel Uitgevoerd

Je tests kunnen te snel worden uitgevoerd, waardoor de pagina wordt vrijgemaakt en de middelen worden vrijgegeven voordat Watcher het kan analyseren. Om dit probleem op te lossen, kun je aan het einde van de test een vertraging toevoegen om tijd te geven om de pagina te analyseren.

In Cypress kun je bijvoorbeeld een vertraging van 10 seconden (10.000 milliseconden) toevoegen met de cy.wait() methode:

describe('Visitor', () => {
  it('should visit example.com', () => {
    cy.visit('https://www.example.com')
    cy.wait(10000);  })
})

Ontbrekende of Ongeldige API-sleutel

Een ongeldige of ontbrekende API-sleutel verschijnt als een ongeldige configuratiebestand in Cypress. De stacktrace zal onthullen of deze ongeldig of ontbrekend is. Een ontbrekende sleutel resulteert in het volgende:

AssertionError [ERR_ASSERTION]: API key is required
    at validateApiKey ...

(Vele regels van de stacktrace zijn verwijderd omwille van de beknoptheid.)

Een ongeldige sleutel resulteert in de volgende stacktrace (verkort):

Error: Server responded to https://axe.deque.com/api/api-keys/test/validate/axe-devtools-watcher with status code 404:
{"error":"Invalid API key"}
    at Response.getBody
...

Hulp

Als je je probleem niet kunt oplossen, mail ons dan zodat we kunnen helpen.