Wraz z wersją Chrome 59 tryb "bez głowy" to now available w stabilnych kompilacjach dla systemów Linux i macOS (a wkrótce także Windows z Chrome 60). Dzięki temu możemy uruchomić w pełni funkcjonalną wersję przeglądarki Chrome bez widocznego interfejsu użytkownika, co daje ogromne możliwości testowania automatycznego. Here are examples.Wykrywanie Chrome działającego w trybie bezotwartym z JavaScript
chrome --headless --disable-gpu --dump-dom https://stackoverflow.com/
W moim testowym JavaScript biegacza, chciałbym nagrać jak najwięcej informacji na temat możliwości używanego przez przeglądarkę, aby ułatwić określenie problemów. Na przykład, mogę nagrywać wiele właściwości navigator
, w tym aktualnych wtyczek przeglądarek:
JSON.stringify(Array.from(navigator.plugins).map(p => p.name))
["Chrome PDF Viewer","Widevine Content Decryption Module","Shockwave Flash","Native Client","Chrome PDF Viewer"]
moim rozumieniu jest to, że Chrome powinny zachowują się identycznie w trybie bez głowy, ale mam wystarczająco dużo doświadczenia, aby być sceptyczny nowej funkcji, która może znacząco zmienić potok renderowania.
Na razie mam zamiar uruchomić testy w obu trybach. Chciałbym, aby biegacz testowy zarejestrował, czy używany jest tryb bezgłowy. Mogłabym przekazać te informacje w konfiguracjach testowych, ale wolałbym mieć czyste rozwiązanie JavaScript, które mógłbym wbudować w sam test. Jednak nie udało mi się znaleźć żadnego interfejsu przeglądarki, który ujawniłby, czy tryb bezgłowy jest aktywny.
Czy istnieje sposób sprawdzenia, czy Chrome działa w trybie bezgłowym z JavaScript?
[Potwierdzam, że' window.chrome === undefined' wydaje się działać] (https://i.stack.imgur.com/68yHd.png). –
Przeszukałem bezgłowy kod przeglądarki Chrome, ale w jakiś sposób opuściłem [definicję tego agenta użytkownika blisko samej góry] (https://chromium.googlesource.com/chromium/src.git/+/lkgr/headless/public/ headless_browser.cC# 19). Dziękuję za wskazanie. Pozwolę, aby nagroda przebiegła, na wypadek, gdyby było coś jeszcze bardziej wyraźnego, ale prawdopodobnie to rozwiązanie przyjdzie mi z pomocą. –