C# Foutafhandeling
Problemen oplossen van veelvoorkomende fouten bij het gebruik van Axe DevTools voor Web voor C#
Versie 4.3.0 en hoger van de axe-core-integraties gebruiken een nieuwe techniek bij het aanroepen van AxeSelenium.run(), waarbij aan het einde van een uitvoering een nieuw venster wordt geopend. Veel van de problemen die in dit document worden beschreven, hebben betrekking op veelvoorkomende problemen met deze techniek en hun mogelijke oplossingen.
Beschikken over een verouderde driver
Een veelvoorkomend probleem is het beschikken over een verouderde driver. Om dit probleem op te lossen, zorg ervoor dat je lokale installatie van geckodriver of chromedriver up-to-date is.
Een voorbeeld van een foutmelding voor dit probleem bevat een bericht over switchToWindow.
Voorbeeld:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedIngeschakelde popupblokkeringen
Popupblokkeringen voorkomen dat we het nieuwe venster kunnen openen bij het aanroepen van AxeSelenium::run. De standaardconfiguratie voor de meeste automatiseringstestbibliotheken zou popups moeten toestaan. Zorg ervoor dat je geen popupblokkeringen expliciet inschakelt, omdat dit problemen kan veroorzaken tijdens het uitvoeren van de tests.
AxeSelenium::useLegacyMode(boolean legacy)
Als je om de een of andere reden de nieuwe AxeSelenium::run-techniek niet zonder fouten kunt uitvoeren, biedt axe een nieuwe koppelbare methode waarmee je de legacy-versie van AxeSelenium::run kunt uitvoeren. Bij het gebruik van deze methode sluit axe toegankelijkheidsproblemen uit die kunnen optreden in cross-domain frames en iframes.
AxeSelenium::useLegacyMode is verouderd en zal in v5.0 worden verwijderd. Meld eventuele fouten die je tegenkomt bij het uitvoeren van AxeSelenium::run, zodat deze kunnen worden opgelost voordat de legacy-versie wordt verwijderd.
Voorbeeld
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();
}
}