Zjistěte, zda byl dokument načten pomocí JavaScriptu

Pokud mě sledujete na Twitteru, pravděpodobně jste si všimli, že naříkám na ChromeDriver. Z nějakého důvodu se zdá, že testy probíhají dříve, než se dokument správně načte, což vede k přechodným selháním testů a spoustě frustrace.

Domníval jsem se, že nejlepším způsobem, jak se těmto problémům vyhnout, je zajistit, aby se dokument načetl před každým testovacím spuštěním – takto neexistuje žádná omluva pro přechodné problémy s načítáním. Zde je úryvek, který používám ke kontrole, zda je stránka připravena:

// The basic check
if(document.readyState === 'complete') {
    // good to go!
}

// Polling for the sake of my intern tests
var interval = setInterval(function() {
    if(document.readyState === 'complete') {
        clearInterval(interval);
        done();
    }    
}, 100);

Připadalo mi ironické, že jsme roky hledali ultimátní „domready“ skript a tady se v roce 2015 snažím zjistit, jestli se dokument dokončil načítání. To je důvod, proč pijeme.