มีคำตอบดีๆมากมายในเพจนี้
- ฉันมักจะเริ่มต้นด้วย maximize.window () ซึ่งจริงๆแล้วฉันทำสิ่งนี้ในไดรเวอร์ Factory หรือที่ใดก็ตามที่คุณเริ่มต้นไดรเวอร์ของคุณ นี่คือสิ่งที่ทำโดยค่าเริ่มต้น - เสมอ
- โดยปกติจะรอองค์ประกอบเนื่องจากความล่าช้าของจาวาสคริปต์
ทั้งสองจะกล่าวถึงในรายละเอียดต่างๆข้างต้น คำตอบที่ฉันไม่เห็นคือ ScrollToElement ดูเหมือนว่าคุณกำลังประมวลผลรายการองค์ประกอบในขณะที่กำลังประมวลผลคุณกำลังสร้างองค์ประกอบเพิ่มเติมช่องทำเครื่องหมาย ซึ่งอาจทำให้องค์ประกอบในรายการของคุณย้ายออกจากหน้าที่มองเห็นได้ บางครั้งคุณสามารถมองเห็นองค์ประกอบได้ด้วยตาเปล่า แต่คุณไม่สามารถคลิกได้ เมื่อประมวลผลรายการบางครั้งคุณต้องแทรกการเลื่อน
- กำหนดจุดพักและตรวจสอบว่าองค์ประกอบที่คุณใช้อยู่ที่ขอบหน้าต่างด้านบน / ล่างขวา / ซ้ายหรือไม่ บางครั้งเมื่อเป็นกรณีนี้คุณไม่สามารถเข้าถึงซีลีเนียมได้ แต่คุณสามารถคลิกเมาส์ด้วยตนเองได้
เนื่องจากฉันทำงานข้ามสิ่งนี้ฉันจึงสร้าง PageScroll.java และวางสคริปต์การเลื่อนไว้ที่นั่น วิธีการบางอย่างจากคลาสนี้มีดังต่อไปนี้:
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);
}
ดูScroll Element ใน View with Selenium
สำหรับตัวอย่างเพิ่มเติม