Всем привет!
Ситуация следующая: использую capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");
В одном классе у меня несколько тестов, идущих друг за другом, допустим a, b и с. На тестовом сайте имеется шапка, которая не меняется при переходе по страницам.
тест a : кликнуть на заголовок в шапке "Заголвок1" и тд
тест b : кликнуть на заголовок в шапке "Заголвок2" и тд
тест c : кликнуть на заголовок в шапке "Заголвок3" и тд
В результате первый тест проходит а следующие нет. Точнее клик по заголовку происходит, но перехода нет. Получается ошибка: не найден элемент страницы, на которую переходим.
Как я понимаю, это происходит потому что селениум уже перед тестом заранее видит элементы шапки, и что-то не успевает сделать. (Если ставить перед кликом по шапке Thread.sleep(3000); - всё ок, ошибки нет).
А так, для ожидания элементов, я использую неявные ожидания.
public void waitForElementPresent( By element) { // ждать появления элемента webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); WebDriverWait wait = new WebDriverWait(webDriver, 20); wait.until(ExpectedConditions.presenceOfElementLocated(element)); webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); } public void waitForElementVisible( By element) { // ждать видимости элемента webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); WebDriverWait wait = new WebDriverWait(webDriver, 20); wait.until(ExpectedConditions.visibilityOfElementLocated(element)); webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); }
Как избежать такой ситуации?