Przejdź do treści
SilktidePomoc

Niestandardowy JavaScript

Niestandardowy to kontrola tworzona przez Ciebie. Piszesz fragment kodu JavaScript, Silktide uruchamia go w przeglądarce na każdej testowanej stronie, a wszystko, co zgłosi Twój fragment kodu, staje się wynikami na tych stronach.

Umożliwia to testowanie wszystkiego, co jest ważne dla Twojej organizacji, a czego Silktide nie testuje od razu po instalacji: wewnętrznej reguły stylu, wymaganego fragmentu kodu śledzącego, wycofanego komponentu, który nie powinien już się pojawiać, i tak dalej.

Jak to naprawić

Wyniki tej kontroli oznaczają to, co zdecyduje Twój fragment kodu, więc sposób naprawy określasz Ty. Napisz message dla każdego wyniku tak, aby współpracownik, który nigdy nie widział tego fragmentu kodu, wiedział, co zmienić.

Jak Silktide to testuje

  1. Twój fragment kodu jest uruchamiany w przeglądarce na każdej stronie testowanej przez Silktide, po załadowaniu strony, jako treść funkcji JavaScript async — dzięki temu możesz bezpośrednio używać await i return.
  2. Wszystko, co zwróci Twój fragment kodu, jest przekształcane w wyniki:
    • Zwróć tablicę obiektów, aby zgłosić wiele wyników, z których każdy wyróżnia element na stronie:
// Report every image over 500px wide as a finding
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: 'Image is wider than 500px',
}));
  • Każdy obiekt może zawierać selector (selektor CSS elementu, który ma zostać wyróżniony), text (tekst wyświetlany dla wyniku), severity (low, medium lub high) oraz message wyjaśniający problem.
  • Zwróć zwykły ciąg znaków, aby zgłosić pojedynczy wynik o niskim poziomie ważności dla strony.
  • Zwróć pustą tablicę albo nic, aby zgłosić, że strona jest w porządku.
  1. Jeśli fragment kodu zgłosi błąd lub zwróci coś nieobsługiwanego, kontrola zgłasza błąd na stronie, aby umożliwić debugowanie fragmentu kodu.

Ponieważ fragment kodu działa w przeglądarce podczas pobierania strony, jego zmiana zacznie obowiązywać przy następnym ponownym przetestowaniu stron, a nie natychmiast.

Rozwiązywanie problemów

Mój fragment kodu działa w konsoli przeglądarki, ale nie tutaj

Fragment kodu jest treścią funkcji, więc instrukcje takie jak return są oczekiwane na najwyższym poziomie. Upewnij się, że fragment kodu zwraca swoje wyniki, zamiast rejestrować je za pomocą console.log, które nie jest zbierane.

Wyniki nie wyróżniają właściwego elementu

Zwracany przez Ciebie selector musi jednoznacznie pasować do elementu na stronie w czasie testowania strony. Preferuj stabilne atrybuty (identyfikatory, atrybuty data-*) zamiast selektorów pozycyjnych, takich jak :nth-child, które przestają działać, gdy zawartość się zmienia.

Dowiedz się więcej

Ostatnio zaktualizowano

Czy ta strona była pomocna?