Skrypt rozwijający grupy postów na Facebooku, update facebooka

Witam,

Do nie dawna (jeszcze w Lipcu) skrypt w pełni działał. Teraz się zepsuł i nie rozumiem czemu :
używałem go na przeglądarce Waterfox opartej na silniku FireFox

Skrypt:

function patrzpoczatek(str1, str2, n) {
  str1 = str1.substring(0, n);
  str2 = str2.substring(0, n);
  return str1 == str2;
}
var zatrzymaj = 0;
 
    function rozwijajResztePrzeszkadzajacychRzeczy() {
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        //var tab = document.getElementsByTagName("*");
        //var tab = document.getElementsByClassName("_5v47");
        var tab = document.querySelectorAll('._5v47.fss');
        var ile = 0;
        for (var i in tab) {
            if(i % 100 == 0) console.log("jestem na "+i+" pos");
            try { // omin zlosliwy link "Zobacz wiecej wydarzen"
                //if(tab[i].href == null || tab[i].href.length < 5)
                tab[i].click();
                ile++;
            } catch(err) { }
        }
        console.log("rozwijajResztePrzeszkadzajacychRzeczy: WYKONALEM "+ile+" clickow");    
        window.alert("BACKUP GOTOWY! No, prawie. Tera to se kopiuj.");
    }
    function rozwijajZobaczWiecejKomentarzy() {
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        // to tez do "Zobacz wczesniejsze komentarze"
        var tab = document.getElementsByClassName("UFIPagerLink");
        var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        console.log("rozwijajZobaczWiecejKomentarzy: WYKONALEM "+ile+" clickow");
        if(ile > 0)
        {
        // rozwijaj dopoki sie da
            setTimeout(rozwijajZobaczWiecejKomentarzy, 2000);
        } 
        else
        {
            setTimeout(rozwijajResztePrzeszkadzajacychRzeczy, 1000);
        }
    }
    function rozwijajZobaczWiecej() {
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        var tab = document.getElementsByClassName("see_more_link");
        var ile = 0;
        for (var i in tab) {
                try {
                   if(tab[i].onclick != null) {
                        ile++;
                        tab[i].onclick();
                    }
                } catch(err) { }
        }
        console.log("rozwijajZobaczWiecej: WYKONALEM "+ile+" clickow");
        setTimeout(rozwijajZobaczWiecejKomentarzy, 1000);
    }
    // na poczatku trzeba w ogole otworzyc komentarze, bo sa schowane
    function otworzKomentarze() {
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        var tab = document.getElementsByClassName("UFIBlingBox");
        var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        console.log("otworzKomentarze: WYKONALEM "+ile+" clickow");
        /*if(ile > 0)
        {
        // rozwijaj dopoki sie da
            setTimeout(otworzKomentarze, 2000);
        } 
        else*/
    ////    {
                setTimeout(rozwijajZobaczWiecej, 1000);
        ///}
    }
    var popWys = 0;
    function scrollowanie() {
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
 
                var tab = document.querySelectorAll('._5v47.fss');
        var ile = 0;
        for (var i in tab) {
            if(i % 100 == 0) console.log("jestem na "+i+" pos");
            try { // omin zlosliwy link "Zobacz wiecej wydarzen"
                //if(tab[i].href == null || tab[i].href.length < 5)
                tab[i].click();
                ile++;
            } catch(err) { }
        }
 
        // to tez do "Zobacz wczesniejsze komentarze"
        var tab = document.getElementsByClassName("UFIPagerLink");
        var ile = 0;
        for (var i in tab)
        {
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { 
                }
        }
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        var tab = document.getElementsByClassName("see_more_link");
        var ile = 0;
        for (var i in tab) {
                try {
                   if(tab[i].onclick != null) {
                        ile++;
                        tab[i].onclick();
                    }
                } catch(err) { }
        }
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        var tab = document.getElementsByClassName("UFIBlingBox");
        var ile = 0;
        for (var i in tab)
        {
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        }
 
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
  // to tez do "Zobacz wczesniejsze komentarze"
  var tab = document.getElementsByClassName("UFIReplySocialSentenceLinkText UFIReplySocialSentenceVerified");
      ///  var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
            ///        ile++;
                } catch(err) { }
       /// console.log("rozwijajNOdpowiedz: WYKONALEM "+ile+" clickow");
 
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
        window.scrollTo(0,document.body.scrollHeight);
        if(popWys != document.body.scrollHeight) {
            popWys = document.body.scrollHeight;
        if(zatrzymaj!=0)
        {
            console.log("Proces zostal zabity");
            return;
        }
            setTimeout(scrollowanie, 1000); // w razie czego zwiekszyc
        } else setTimeout(otworzKomentarze, 1000);
    }
    setTimeout(scrollowanie, 1000);

Teraz na WaterFox wywala:

TypeError: document.body is undefined[Learn More]

I błąd prowadzi do: https://developer.mozilla.org[…]t/Reference/Errors/Unexpected type

Na Chrome się co prawda otwiera, ale:

  1. Nie otwiera wszystkiego
  2. Zamyka się zbyt wcześnie
  3. Po kilku otworzeniach zabija proces Chrome - Chrome wywala się z katastroficznym błędem i wszystko przepada … :(

Ktoś ma pomysł co tu się zmieniło, że to tak nie działa już jak działało?

Pewnie strona Ci się jeszcze nie załadowała do końca zanim skrypt jest uruchamiany.

Zwiększ wartości w ostatniej linijce:

    setTimeout(scrollowanie, 1000);

Zamiast 1000 daj np na początek 1500. 1000 to jedna sekunda, więc jak strona ładuje Ci się 2 sekundy to powinieneś dać trochę więcej niż 2 czyli 2500.

A powiesz czemu na Chrome od razu startuje ? I sprawdzę.

Edit://
Zwiększenie nic nie zmienia, ten sam błąd się pojawia na Waterfoxie

To może musisz jakoś nasłuchiwać aż się skończyło ładowanie?

? nie rozumiem

przecież strona jest załadowana.
a błąd pojawił się po ostatniej aktualizacji Firefox’a wcześniej działało. w skrypcie zmian nie było. nawet zmian w wyświetlanym tekście…

No to może musiałbyś zobaczyć co nowego zaimplementowano w przeglądarce i co zmieniono - i może dojdziesz czemu padło?

Nie wiem nie widzę w chanelogu nic co by na to wpłynęło.
Ściągnąłem waterfox 55 portable (najnowsza wersja to 56)
i skrypt się odpala bez błędów i śmiga …

To może limitacje webextension? Sprawdź jak sobie poradzi Tampermonkey?