0

ウェブページは上から下に読み込まれます。

1) <html ...
2) <head ...
3) <body ...
  etc

<titleタグが表示されるまで WebDriver を明示的に待機させる必要があります。次に、タイトルの内容を読み、ページ全体が読み込まれるのを待たずに他のアクションを続けます!!! .

WebDriver driver = new ChromeDriver();
driver.get("http://");
WebDriverWait wait = new WebDriverWait(driver, 0) // This line is probably the one to be transformed in order to correspond to my requirements
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//title")));
// The problem is that the following commands do not start off until the whole page is loaded
if(driver.getTitle().equals("whatever")) {
driver.get("http://");
}
else {
...
}
4

1 に答える 1

1

を使用できますpageLoadTimeout。タイムアウトを設定して0キャッチTimeoutExceptionし、特定のタイトルアサートなどを行います。

driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.SECONDS);

アップデート

driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 30);
try {
    driver.get("http://");
} catch (TimeoutException e) {
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//title")));
}

詳細について

理想的にはExpectedConditions.titleIs() 、使用可能なオプションの詳細情報を使用する必要があります。ここで見つけることができます。

于 2013-08-30T17:22:53.630 に答える