Ada banyak jawaban bagus di halaman ini.
- Saya biasanya mulai dengan maksimalkan.window (), sebenarnya saya melakukan ini di Pabrik driver atau di mana pun Anda menginisialisasi driver Anda. Ini adalah sesuatu yang dilakukan secara default - selalu.
- Ini biasanya menunggu elemen karena javascript delay.
Keduanya dibahas dalam berbagai detail di atas. Jawaban yang tidak saya lihat adalah ScrollToElement. Sepertinya Anda sedang memproses daftar elemen, sementara memproses Anda membuat lebih banyak elemen, kotak centang. Ini dapat menyebabkan elemen dalam daftar Anda keluar dari halaman yang terlihat. Terkadang Anda dapat melihat elemen dengan mata telanjang tetapi Anda tidak bisa mengkliknya. Saat memproses daftar, Anda terkadang harus menyela pengguliran.
- Tetapkan break point dan periksa untuk melihat apakah elemen yang Anda gunakan berada di tepi jendela, kanan atas / bawah / kiri. Kadang-kadang saat ini terjadi Anda tidak dapat mengaksesnya melalui selenium tetapi Anda dapat mengklik secara manual dengan mouse Anda.
Karena saya menjalankan ini, saya membuat PageScroll.java dan meletakkan skrip gulir saya di sana. Berikut adalah beberapa metode dari kelas ini:
public static void scrollToTop(WebDriver driver) {
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0,0)");
}
public static void scrollToBottom(WebDriver driver) {
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0, document.body.scrollHeight)");
}
public static void scrollToElementTop(WebDriver driver, WebElement element) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].scrollIntoView(true);", element);
}
public static void scrollToElementBottom(WebDriver driver, WebElement element) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].scrollIntoView(false);", element);
}
lihat Scroll Element ke View dengan Selenium
untuk contoh lainnya