Saat ini saya menggunakan selenium webdriver untuk mem-parsing melalui halaman teman-teman pengguna facebook dan mengekstrak semua id dari skrip AJAX. Tapi saya perlu gulir ke bawah untuk mendapatkan semua teman. Bagaimana saya bisa gulir ke bawah di Selenium. Saya menggunakan python.
python
selenium
selenium-webdriver
automated-tests
pengguna2523364
sumber
sumber
Jawaban:
Kamu bisa memakai
di mana Y adalah tinggi (pada monitor fullhd itu 1080). (Terima kasih kepada @ Lukas)
Anda juga bisa menggunakan
untuk menggulir ke bagian bawah halaman.
Jika Anda ingin menggulir ke halaman dengan pemuatan tanpa batas , seperti yang ada di jejaring sosial, facebook, dll. (Terima kasih kepada @Cuong Tran)
Metode lain (terima kasih kepada Juanse) adalah, pilih objek dan
sumber
scrollHeight
, apa artinya dan bagaimana cara kerjanya secara umum?Jika Anda ingin menggulir ke bawah ke halaman tak terbatas (seperti linkedin.com ), Anda dapat menggunakan kode ini:
Referensi: https://stackoverflow.com/a/28928684/1316860
sumber
SCROLL_PAUSE_TIME
bervariasi, dibutuhkan sekitar 2 detik untuk saya.Anda dapat menggunakan
send_keys
untuk mensimulasikan penekanan tombolEND
(atauPAGE_DOWN
) (yang biasanya menggulir halaman):sumber
metode yang sama seperti yang ditunjukkan di sini :
dalam python Anda bisa menggunakan
(Y adalah posisi vertikal yang ingin Anda gulir ke)
sumber
ini membantu ketika saya mencoba mengakses 'li' yang tidak terlihat.
sumber
location_once_scrolled_into_view
harus dipanggil tanpa()
adalah itulocation_once_scrolled_into_view
adalah Pythonproperty
. lihat kode sumber di sini: selenium / webelement.py di d3b6ad006bd7dbee59f8539d81cee4f06bd81d64 · SeleniumHQ / seleniumUntuk tujuan saya, saya ingin menggulir lebih ke bawah, dengan mengingat posisi jendela. Solusi saya serupa dan digunakan
window.scrollY
yang akan pergi ke posisi gulir y saat ini + 200
sumber
Ini adalah cara Anda menggulir ke bawah halaman web:
sumber
Cara termudah yang saya temukan untuk menyelesaikan masalah itu adalah dengan memilih label dan kemudian mengirim:
Semoga berhasil!
sumber
Tidak satu pun dari jawaban ini yang berfungsi untuk saya, paling tidak untuk menelusuri halaman hasil pencarian facebook, tetapi saya menemukan setelah banyak menguji solusi ini:
sumber
SCROLL_PAUSE_TIME
di stackoverflow.com/a/27760083/7326714 untuk2
, bekerja dengan baik dan Anda gulir ke bawah 100x lebih cepat.Saat bekerja dengan youtube, elemen apung memberikan nilai "0" sebagai tinggi gulir daripada menggunakan "return document.body.scrollHeight" coba gunakan "return document.documentElement.scrollHeight" yang ini sesuaikan waktu jeda gulir sesuai internet Anda kecepatan lain itu akan berjalan hanya untuk satu waktu dan kemudian istirahat setelah itu.
sumber
Saya sedang mencari cara untuk menggulir halaman web yang dinamis, dan secara otomatis berhenti setelah akhir halaman tercapai, dan menemukan utas ini.
Posting oleh @Cuong Tran , dengan satu modifikasi utama, adalah jawaban yang saya cari. Saya pikir orang lain mungkin menganggap modifikasi itu membantu (ini memiliki efek nyata pada bagaimana kode bekerja), maka dari itu postingan ini.
Modifikasinya adalah dengan memindahkan pernyataan yang menangkap ketinggian halaman terakhir di dalam loop (sehingga setiap pemeriksaan membandingkan dengan tinggi halaman sebelumnya).
Jadi, kode di bawah ini:
(Ada modifikasi lain, di mana pernyataan break berada di dalam kondisi lain (jika halaman 'stick') yang dapat dihapus).
sumber
Kode ini bergulir ke bawah tetapi tidak mengharuskan Anda menunggu setiap waktu. Ini akan terus bergulir, dan kemudian berhenti di bagian bawah (atau batas waktu)
Ini jauh lebih cepat daripada menunggu 0,5-3 detik setiap kali untuk respons, ketika respons itu bisa memakan waktu 0,1 detik
sumber
gulir memuat halaman. Contoh: medium, quora, dll
sumber
jika Anda ingin menggulir dalam tampilan / bingkai tertentu (WebElement), apa yang hanya perlu Anda lakukan adalah mengganti "tubuh" dengan elemen tertentu yang ingin Anda gulir ke dalamnya. saya mendapatkan elemen itu melalui "getElementById" pada contoh di bawah ini:
ini adalah kasus di YouTube , misalnya ...
sumber
The
ScrollTo()
fungsi tidak bekerja lagi. Inilah yang saya gunakan dan itu bekerja dengan baik.sumber
ini bekerja untuk kasus saya.
sumber