Anpassad JavaScript
Anpassad är en kontroll som du själv skapar. Du skriver ett JavaScript-utdrag, Silktide kör det i webbläsaren på varje sida som testas, och det som utdraget rapporterar blir resultat på dessa sidor.
Det gör det möjligt att testa vad som helst som är viktigt för din organisation, men som Silktide inte testar direkt: en intern stilregel, ett obligatoriskt spårningsutdrag, en föråldrad komponent som inte längre ska visas och så vidare.
Så åtgärdar du det
Resultaten från den här kontrollen betyder vad ditt utdrag bestämmer att de ska betyda, så det är du som definierar åtgärden. Skriv message för varje resultat så att en kollega som aldrig har sett utdraget förstår vad som ska ändras.
Så testar Silktide detta
- Ditt utdrag körs i webbläsaren på varje sida som Silktide testar, efter att sidan har
lästs in, som kroppen i en
asyncJavaScript-funktion – så du kan användaawaitochreturndirekt. - Det som ditt utdrag returnerar omvandlas till resultat:
- Returnera en array med objekt för att rapportera flera resultat, där varje resultat markerar ett element på sidan:
// Rapportera varje bild som är över 500 px bred som ett resultat
const wide = [...document.querySelectorAll('img')].filter(img => img.width > 500);
return wide.map(img => ({
selector: 'img[src="' + img.getAttribute('src') + '"]',
text: img.getAttribute('src'),
severity: 'medium',
message: 'Bilden är bredare än 500 px',
}));
- Varje objekt kan innehålla
selector(en CSS-selektor för elementet som ska markeras),text(det som ska visas för resultatet),severity(low,mediumellerhigh) ochmessagesom förklarar problemet. - Returnera en vanlig sträng för att rapportera ett resultat med låg allvarlighetsgrad för sidan.
- Returnera en tom array, eller ingenting, för att rapportera att sidan är felfri.
- Om utdraget utlöser ett fel eller returnerar något som inte stöds, rapporterar kontrollen felet på sidan så att du kan felsöka utdraget.
Eftersom utdraget körs i webbläsaren när sidan hämtas börjar ändringar i utdraget gälla nästa gång sidorna testas, inte direkt.
Felsökning
Mitt utdrag fungerar i webbläsarens konsol men inte här
Utdraget utgör kroppen i en funktion, så satser som return förväntas finnas på toppnivå. Kontrollera att utdraget returnerar sina resultat i stället för att logga dem med console.log, som inte samlas in.
Resultaten markerar inte rätt element
Den selector du returnerar måste matcha elementet på sidan unikt när sidan testades. Använd helst stabila attribut (id:n och data-*-attribut) i stället för positionsselektorer som :nth-child, vilka slutar fungera när innehållet förändras.