/ / Ako čakať, kým stránka nie je po kliknutí na tlačidlo slabá? - selén, webový ovládač selénu

Ako počkať, kým sa po stlačení tlačidla stránky nezobrazia? - selén, selen-webdriver

Ako čakať na stlmenie stránky (načítanie) po kliknutí na tlačidlo? Skúšal som nasledujúce možnosti, ale zatiaľ som neuspel. Musím zachytiť načasovanie transakcií.

1) Implicitné čakanie

(driver.manage().timeouts().implicitlyWait(20L, TimeUnit.SECONDS);)

2) Explicitné čakanie

(wait = new WebDriverWait(driver, 200);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//a[@ardbn="z3Btn_TDS_Next"]/div/img)[position()<3]")));)

3) Jedna z mojich vlastných funkcií

public void waitForPageLoaded() {

ExpectedCondition<Boolean> expectation = new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { return ((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete"); } };

Wait<WebDriver> wait = new WebDriverWait(driver,30); try { wait.until(expectation); } catch(Throwable error) { fail("Timeout waiting for Page Load Request to complete."); } }

Screnshot

odpovede:

2 pre odpoveď č. 1

Počkajte, kým sa nezobrazí okno Loading. Predpokladajme, že lokátor / id / xpath poľa Loading je id = loader, Then

By locator = By.id("loader");
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(timeOutInSeconds, TimeUnit.SECONDS)
.pollingEvery(pollingIntervalInSeconds, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(StaleElementReferenceException.class);
wait.until(ExpectedConditions.invisibilityOfElementLocated(locator));