Gestione degli errori in C#
Risoluzione dei comuni errori riscontrati durante l'uso di Axe DevTools for Web per C#
La versione 4.3.0 e successive delle integrazioni di axe-core utilizzano una nuova tecnica quando si chiama AxeSelenium.run() che apre una nuova finestra alla fine di un'esecuzione. Molti dei problemi discussi in questo documento affrontano problemi comuni con questa tecnica e le loro potenziali soluzioni.
Driver obsoleto
Un problema comune è avere un driver obsoleto. Per risolvere questo problema, assicurati che la tua installazione locale di geckodriver o chromedriver sia aggiornata.
Un messaggio di errore esempio per questo problema includerà un messaggio su switchToWindow.
Esempio:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedBloccanti popup abilitati
I bloccanti popup ci impediscono di aprire la nuova finestra quando si chiama AxeSelenium::run. La configurazione predefinita per la maggior parte delle librerie di testing automatizzato dovrebbe consentire i popup. Assicurati di non abilitare esplicitamente i bloccanti popup che potrebbero causare problemi durante l'esecuzione dei test.
AxeSelenium::useLegacyMode(boolean legacy)
Se per qualche motivo non riesci a eseguire la nuova tecnica AxeSelenium::run senza errori, axe fornisce un nuovo metodo concatenabile che ti permette di eseguire la versione legacy di AxeSelenium::run. Utilizzando questo metodo, axe esclude i problemi di accessibilità che potrebbero verificarsi in frame e iframe cross-domain.
AxeSelenium::useLegacyMode è deprecato e sarà rimosso nella versione 5.0. Si prega di segnalare eventuali errori che si potrebbero avere durante l'esecuzione di AxeSelenium::run in modo che possano essere risolti prima che la versione legacy venga rimossa.
Esempio
using Deque.AxeDevtools.Selenium;
using OpenQA.Selenium.Chrome;
public class Program
{
static void Main(string[] args)
{
// open webdriver and go to test page
var webDriver = new ChromeDriver();
webDriver.Navigate().GoToUrl("http://www.testurl.com/");
// enable legacy mode and analyze
var results = new AxeSelenium(webDriver)
.UseLegacyMode(true)
.Analyze();
}
}