Comment puis-je faire défiler une page web en utilisant selenium webdriver en python?
Je suis actuellement en utilisant selenium webdriver pour analyser facebook de l'utilisateur page d'amis et d'en extraire tous les codes du script AJAX. Mais j'ai besoin de faire défiler vers le bas pour obtenir tous les amis. Comment puis-je faire défiler vers le bas en Sélénium. Je suis à l'aide de python.
- double possible de Comment faire défiler la page avec le sélénium
- le pilote.execute_script(f"de la fenêtre.scrollTo(0, {2**127});")
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
où Y est la hauteur (sur un fullhd moniteur c'est 1080). (Merci à @lukeis)
Vous pouvez également utiliser
pour faire défiler jusqu'à bas de la page.
Si vous voulez de scrool à une page avec une infinie chargement, comme le réseau social de ceux, facebook etc. (merci à @Cuong Tran)
scrollHeight
, que cela signifie et comment cela fonctionne en général?Si vous voulez faites défiler vers le bas de la page infinie (comme linkedin.com), vous pouvez utiliser ce code:
Référence: https://stackoverflow.com/a/28928684/1316860
SCROLL_PAUSE_TIME
varie, il faut environ 2 secondes pour moi.même méthode comme indiqué ici:
en python, vous pouvez simplement utiliser
(Y est la position verticale que vous souhaitez faire défiler)
testé, il fonctionne
cela a aidé quand j'ai essayé d'accéder à un " li " qui n'était pas visible.
Aucune de ces réponses a fonctionné pour moi, du moins pas pour le défilement vers le bas un facebook page de résultat de recherche, mais j'ai trouvé après beaucoup de test de cette solution:
SCROLL_PAUSE_TIME
dans stackoverflow.com/a/27760083/7326714 pour2
, il fonctionne très bien et vous faites défiler vers le bas d'un 100x plus rapide.C'est la façon dont vous faites défiler la page web:
La façon la plus simple que j'ai trouvée pour résoudre ce problème est de sélectionner une étiquette et ensuite l'envoyer:
Espère que ça fonctionne!
Pour mon but, je voulais faire défiler vers le bas de plus, en gardant la position de fenêtres à l'esprit. Ma solution a été similaire et utilisé
window.scrollY
qui vont à l'ordonnée position de défilement + 200
Lorsque l'on travaille avec youtube les éléments flottants donner la valeur "0" comme le défilement de la hauteur
ainsi, plutôt que d'utiliser "document de retour.corps.scrollHeight" essayer d'utiliser ce un "document de retour.documentElement.scrollHeight"
régler le défilement du temps de pause en fonction de votre vitesse d'internet
sinon il sera exécuté qu'une seule fois et puis les pauses après.
Je cherchais un moyen de faire défiler une page web dynamique, et automatiquement l'arrêt une fois que la fin de la page est atteinte, et trouvé ce fil.
Le post de @Cuong Tran, avec une seule modification, était la réponse que je cherchais. Je pense que d'autres personnes pourraient trouver la modification utile (il a un effet prononcé sur le fonctionnement du code), d'où ce post.
La modification consiste à déplacer la déclaration qui s'empare de la dernière page de la hauteur à l'intérieur de la boucle (de sorte que chaque case est de comparer à la page précédente de la hauteur).
Donc, le code ci-dessous:
(Il y a une autre modification, où l'instruction break est à l'intérieur d'un autre état (dans le cas de la page "bâtons") qui peut être retiré).
de défilement de chargement des pages. Exemple: moyenne, quora,etc