Một ví dụ trong C# sử dụng Net 4.5 và Selenium WebDriver 2,45
Chỉ cần thay đổi biến _url
để trỏ đến trang web của bạn và chạy.
Tôi đã sử dụng ChromeDriver nhưng cũng nên hoạt động với các trình điều khiển khác.
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace SeleniumScrollTest {
internal static class Program {
// Declare Selenium Web Driver
private static IWebDriver _chromeDriver;
private static String _url;
private static void Main(string[] args) {
// Instantiate URL
_url = @"http://my.website.com/LazyLoadContent";
// Instantiate Web Driver as ChromeDriver and set initial URL
_chromeDriver = new ChromeDriver {Url = _url};
// Instruct the WebDriver to wait X seconds for elements to load
_chromeDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(15));
// Instantiate JavaScript Executor using the web driver
var jse = (IJavaScriptExecutor) _chromeDriver;
// The minified JavaScript to execute
const string script =
"var timeId=setInterval(function(){window.scrollY<document.body.scrollHeight-window.screen.availHeight?window.scrollTo(0,document.body.scrollHeight):(clearInterval(timeId),window.scrollTo(0,0))},500);";
// Start Scrolling
jse.ExecuteScript(script);
// Wait for user input
Console.ReadKey();
// Close the browser instance
_chromeDriver.Close();
// Close the ChromeDriver Server
_chromeDriver.Quit();
}
}
}
Nếu bạn đã hiểu rõ về Selenium và C#, bit quan trọng thực sự là JavaScript. -Sourced từ Cybermaxs, here
var timeId = setInterval(function() {
if (window.scrollY !== document.body.scrollHeight)
window.scrollTo(0, document.body.scrollHeight);
else
clearInterval(timeId);
}, 500);
500 trên là khoảng thời gian mà nó sẽ cố gắng cuộn (ms), điều chỉnh này là cần thiết. [1000 micro giây = 1 giây]
Làm tất cả các yếu tố tải khi tải trang hoặc tải một cách lười biếng giống như bài đăng trên facebook. Nếu vậy, bạn có thể nhận ra văn bản được hiển thị như 'Tải thêm bài đăng' hoặc một cái gì đó tương tự và sau đó tiếp tục tìm kiếm phần tử. Đó là một cách để làm điều đó. Trường hợp sử dụng của bạn ở đây là gì? Bạn có nhận được văn bản có nội dung tương tự không. – Madusudanan
Có một số tiêu đề khác nhau trên trang hiển thị thêm chi tiết khi được nhấp. Khi một cái gì đó trong tiêu đề được nhấp (sau khi tiêu đề đã được nhấp) tôi nhận được một lỗi thời gian chờ (mà tôi tin là do trình duyệt không cuộn xuống để tìm phần tử). – user2184530
Ứng dụng có hoạt động theo cách thủ công hay không. Bạn có thể đăng HTML của mình tại đây hay không, phần có tiêu đề.Điều này sẽ rõ ràng hơn. – Madusudanan