Manipulation du DOM avec PhantomJS

Je suis à l'aide de PhantomJS pour créer des captures d'écran de l'arbitraire des Url. Avant la capture d'écran est prise, je veux manipuler la page de DOM pour supprimer tous les menus drop-down, comme PhantomJS rend de manière incorrecte dans le coin supérieur gauche de la page (connue Fantôme question.)

J'ai un simple DOM script pour faire cela avec:

    var selects = document.getElementsByTagName('select');

    for (var i=0; i < selects.length; i++) {
        document.getElementsByTagName('select')[i].style.visibility="hidden";
    }

Cela a été testé et fonctionne très bien en tant que stand-alone Javascript. Il n'est pas cependant le travail à l'intérieur de la PhantomJS code j'utilise pour recueillir les captures d'écran (dernière partie):

  page.open(address, function (status) {

    if (status !== 'success') {
        console.log('Unable to load the address!');
    } else {
        window.setTimeout(function () {

            var selects = document.getElementsByTagName('select');

            for (var i=0; i < selects.length; i++) {
                document.getElementsByTagName('select')[i].style.visibility="hidden";
            }

            page.render(output);

            phantom.exit();

        }, 200);
    }
});

Certaines pages sont encore rendu avec une boîte de sélection dans le mauvais endroit. Je vous remercie de l'aide, soit la résolution de l'original PhantomJS rendu de bug ou de cacher les menus déroulants dans les DOM. Merci.

OriginalL'auteur eli | 2012-08-29