Risoluzione dei problemi Java
Come aggirare gli errori causati da axe DevTools Java 4.3 e versioni successive. Per informazioni sulla risoluzione dei problemi di integrazione di Java Playwright, vedere Risoluzione dei problemi di Java Playwright.
La versione 4.3.0 e successive delle integrazioni di axe DevTools utilizzano una nuova tecnica durante la chiamata AxeSelenium.run
che apre una nuova finestra al termine di una corsa. Molti degli argomenti trattati in questo documento riguardano problemi comuni di questa tecnica e le loro possibili soluzioni.
Driver obsoleto
Un problema comune è avere un driver obsoleto. Per risolvere questo problema, assicurati che l'installazione locale di geckodriver o chromedriver sia aggiornata.
Un esempio di messaggio di errore per questo problema includerà un messaggio su switchToWindow
.
Ad esempio, vedi quanto segue:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefined
Blocchi popup abilitati
I blocchi popup ci impediscono di aprire una nuova finestra quando chiamiamo AxeSelenium::run
. La configurazione predefinita per la maggior parte delle librerie di test di automazione dovrebbe consentire i popup. Assicuratevi di non abilitare esplicitamente i blocchi popup, poiché potrebbero causare problemi durante l'esecuzione dei test.
AxeBuilder::setLegacyMode(boolean legacy)
Se per qualche motivo non riesci a eseguire la nuova AxeSelenium::run
tecnica senza errori, axe fornisce un nuovo metodo concatenabile che ti consente di eseguire la AxeSelenium::run
versione legacy. Utilizzando questo metodo, axe esclude i problemi di accessibilità che potrebbero verificarsi nei frame e negli iframe cross-domain.
AxeBuilder::setLegacyMode
è obsoleto e verrà rimosso nella versione 5.0. Segnala eventuali errori riscontrati durante l'esecuzione AxeSelenium::run
in modo che possano essere corretti prima che la versione legacy venga rimossa.
Esempio
import com.deque.html.axedevtools.selenium.AxeSelenium;
import com.deque.html.axedevtools.selenium.AxeDriver;
import com.deque.html.axecore.selenium.AxeBuilder;
public class Main {
public static void main(String[] args) {
var webDriver = ...; // open wbdriver and go to your test page
var axeDriver = new AxeDriver(webDriver);
var results = new AxeSelenium(new AxeBuilder().setLegacyMode())
.run(axeDriver);
}
}