Я пытаюсь дождаться загрузки содержимого iFrame, но я не могу сделать это без использования Thread.sleep ().
У вас, ребята, есть идея, как это сделать?
Вот мой код Java:
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe.f-iframe")));
//Thread.sleep(3000);
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe.f-iframe")));
String source = driver.getPageSource();
System.out.println(source); //prints an empty iframe at this point
waitForElementVisibility(driver, link, 5); //waits using fluent wait for the element
link.click();
driver.switchTo().defaultContent();
Если я раскомментирую Thread.sleep () и закомментирую все ожидания, все работает нормально.
Код веб-страницы:
<html><body><iframe class="f-iframe x-item"><html><body>...</body></html></iframe</body></html>