Ich habe den folgenden Code:Get dynamisch nachgeladen HTML Nach dem Scrollen zum Ende
import java.io.IOException;
import com.machinepublishers.jbrowserdriver.JBrowserDriver;
import com.machinepublishers.jbrowserdriver.Settings;
import com.machinepublishers.jbrowserdriver.Timezone;
public class ReadMovies {
public static void main(final String[] args) throws IOException {
final JBrowserDriver driver = new JBrowserDriver(Settings.builder().timezone(Timezone.AMERICA_NEWYORK).build());
driver.get("http://www.cinesift.com/#/");
driver.executeScript("window.scrollTo(0, document.body.scrollHeight)");
System.out.println(driver.getPageSource());
driver.quit();
}
}
jedoch die executeScript()
scheint keine Wirkung zu - das Programm noch druckt die ursprüngliche Quelle, wie wenn die Seite zuerst geladen (also wurden keine zusätzlichen Elemente geladen). Weiß jemand, was los ist?
Der Thread.sleep() war der Teil, den ich vermisste. Habe nicht bemerkt, dass ich dem Server wirklich Zeit geben muss, zu antworten :). Vielen Dank! –
@JohnRoberts 'Thread.sleep()' sollte generell vermieden werden und stattdessen sollte 'WebDriverWait()' verwendet werden. Für diese Aufgabe denke ich, dass es ziemlich gut ist - wir haben eine erwartete Zustandsprüfung in der while-Schleife. – alecxe
OK. Ich werde mir das merken. –