1
までスクロールした後、動的にロードされたHTMLを取得します。追加の要素はロードされませんでした)。誰が何が間違っているのか分かりますか?I次のコードを持っているボトム
までスクロールした後、動的にロードされたHTMLを取得します。追加の要素はロードされませんでした)。誰が何が間違っているのか分かりますか?I次のコードを持っているボトム
ページをスクロールすると、追加のムービーが読み込まれます。一定量のムービーまたはすべてのムービーをロードする場合は、連続してスクロールして待機する必要があります。
ナイーブな実装:
int DESIRED_COUNT = 100;
int currentCount = driver.findElements(By.cssSelector("#films .film")).size();
while (currentCount < DESIRED_COUNT) {
driver.executeScript("window.scrollTo(0, document.body.scrollHeight)");
Thread.sleep(1000);
currentCount = driver.findElements(By.cssSelector("#films .film")).size();
}
// now get the page source
System.out.println(driver.getPageSource());
Thread.sleep()
待ち時間は、おそらくWebDriverWait
を経由して明示的な待ちに置き換える必要があります。
Thread.sleep()は欠けていた部分でした。私は実際にサーバーに応答する時間を与える必要があることを認識していませんでした:)。ありがとう! –
@JohnRoberts 'Thread.sleep()'は一般的に避けてください。代わりに 'WebDriverWait()'を使うべきです。この作業のために、私はかなり大丈夫だと思いますが、私たちはwhileループ条件で予想される条件チェックを持っています。 – alecxe
OK。ちゃんと覚えておきますよ。 –