Видях, че има въпрос: Selenium-Webdriver Ruby --› Как да изчакате изображенията да бъдат напълно заредени след щракване
Но изглежда, че никой не е отговорил директно на това: Трябва да изчакам изображението да бъде напълно заредено, а не само да се представи в DOM, използвайки selenium WebDriver. Какво трябва да направя? В момента използвам
public static void waitUntilVisible(WebDriver webDriver, By locator) {
WebDriverWait driverWait = new WebDriverWait(webDriver, TIMEOUT);
driverWait.until(visibilityOfElementLocated(locator));
}
който използва
/**
* An expectation for checking that an element is present on the DOM of a page and visible.
* Visibility means that the element is not only displayed but also has a height and width that is
* greater than 0.
*
* @param locator used to find the element
* @return the WebElement once it is located and visible
*/
public static ExpectedCondition<WebElement> visibilityOfElementLocated(
final By locator) {
return new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
try {
return elementIfVisible(findElement(locator, driver));
} catch (StaleElementReferenceException e) {
return null;
}
}
@Override
public String toString() {
return "visibility of element located by " + locator;
}
};
}
но ако изображението вече има височина и ширина, то вероятно се счита за видимо, дори ако изображението не е заредено