selenium でJavaでスクレープする時、読込が終わるまでの待機方法がわからず、Thread.sleep(2000) とかをクリック後の処理に入れてましたが、即完了する場合、不要でタイムアウトして確実に実行できないことも多いので、ちょっと調べたところ、
Implicit Wait を使うと解決するのがわかり、いつも使ってます。
[ コード例 ]
import java.util.concurrent.TimeUnit; // <== これが必要
if (this.isHeadless) {
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu");
driver = new ChromeDriver(options);
}
else {
driver = new ChromeDriver();
}
// タイムアウトを10秒にセット //
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
ここで教えて頂きました: http://softwaretest.jp/labo/tech/labo-294/