Gestion des erreurs Ruby

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
Not for use with personal data

Comment contourner les erreurs causées par axe DevTools Ruby 4.3

Les versions 4.3.0 et supérieures des intégrations axe DevTools utilisent une nouvelle technique lors de l'analyse d'une page, qui ouvre une nouvelle fenêtre à la fin d'une exécution. La plupart des points décrits dans ce document abordent les problèmes courants liés à cette technique et leurs solutions potentielles.

Avoir un pilote obsolète

Un problème courant est d’avoir un pilote obsolète. Pour résoudre ce problème, assurez-vous que votre installation locale de geckodriver ou chromedriver est à jour.

Un exemple de message d’erreur pour ce problème inclura un message concernant switchToWindow. Par exemple :

(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefined

Avoir les bloqueurs de pop-up activés

Les bloqueurs de popups nous empêchent d'ouvrir une nouvelle fenêtre lors de l'analyse d'une page. La configuration par défaut de la plupart des bibliothèques de tests d'automatisation doit autoriser les fenêtres contextuelles. Assurez-vous de ne pas activer explicitement les bloqueurs de fenêtres contextuelles, ce qui peut entraîner un problème lors de l'exécution des tests.

Axe::Configuration.legacy_mode

Si pour une raison quelconque vous ne pouvez pas analyser une page sans erreurs, axe fournit une nouvelle méthode chaînable qui vous permet d'exécuter la procédure héritée. Lorsque vous utilisez cette méthode, axe exclut les problèmes d'accessibilité qui peuvent survenir dans les cadres et les iframes inter-domaines.

note

Axe::Configuration.legacy_mode est obsolète et sera supprimé dans la version 5.0. Veuillez signaler toute erreur que vous pourriez rencontrer lors de l'analyse d'une page afin qu'elles puissent être corrigées avant que l'ancienne version ne soit supprimée.

Exemple

require "axe/core"

def analyze_page
  ...
end
def open_page
  ...
end

webdriver = open_page
Axe::Configuration.instance.legacy_mode = true
results = analyze_page