Ich schreibe ein kleines MacOS-Programm mit einem WebView, das eine Website lädt. Dies ist eine dieser Websites, die automatisch mehr Inhalt lädt, wenn Sie nach unten blättern. Ich versuche, Code zu schreiben, der ständig zum Ende der Seite scrollt, so dass mehr davon geladen wird und so weiter.Cocoa .scrollToEndOfDocument funktioniert nicht mehr nach dem ersten Versuch
Was ich bisher habe, ist dies:
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
}
}
Dieses gut einmal funktioniert: Die Seite geladen wird, es rollt auf den Boden, und der Seite geladen wird.
Danach scrollt das WebView jedoch nicht mehr, obwohl genügend Zeit zum erneuten Laden der Seite vorhanden ist. Die Position auf der Seite bleibt genau wie zuvor.
Ich habe das Gefühl, dass .scrollToEndOfDocument(self)
scheint nicht zu erkennen, dass die Webseite länger geworden ist.
Gibt es eine Möglichkeit, '.scrollToEndOfDocument(self)
' zu aktualisieren, so dass es weiß, wo der neue untere Rand der Seite ist?
Danke!