Я пишу небольшую программу для MacOS с WebView, которая загружает веб-сайт. Это один из тех сайтов, которые автоматически загружают больше контента при прокрутке вниз. Как истечение срока, я пытаюсь написать код, который будет постоянно прокручивать страницу вниз, чтобы больше ее загружалось и так далее.
Что у меня есть до сих пор это:
scrollToBottomTotalTimes = 10
self.myWebView.mainFrame.load(NSURLRequest(url: NSURL(string: urlString)! as URL) as URLRequest!)
func webView(_ sender: WebView!, didFinishLoadFor frame: WebFrame!) {
var scrollToBottomCurrentTimes = 0
while scrollToBottomCurrentTimes != scrollToBottomTotalTimes {
scrollToBottomCurrentTimes += 1
self.myWebView.scrollToEndOfDocument(self)
sleep(2) //give the page some time to load
}
}
Это работает хорошо один раз: страница загружается, она прокручивается вниз, и загружается большая часть страницы.
Однако после этого WebView больше не прокручивается, несмотря на достаточное время для перезагрузки страницы. Положение на странице остается точно таким же, как и раньше.
У меня такое ощущение, что .scrollToEndOfDocument(self)
не замечает, что веб-страница стала длиннее.
Есть ли способ «обновить» .scrollToEndOfDocument(self)
, чтобы он знал, где находится новая нижняя часть страницы?
Спасибо!