Тестирование: Ожидания

Как мы ждем событий с элементами.

 

1.Методы для ожидания появления элементов на странице:

Методы имеют 2 параметра, время ожидания, которое обычно 15 секунд, и локатор элемента, который ждем, методы используются обычно при открытии новых страниц, т.к. система не слишком быстрая, через эти методы мы убеждаемся что страница окончательно загрузилась

->waitElementToAppearByCssSelector($timeToWait, $cssSelector)
waitElementToAppearByID($timeToWait, $id)
waitElementToAppearByXpath($timeToWait, $xpath)
waitElementToAppearByClass($timeToWait, $className)

Общая структура метода ->waitElementToAppearByLocator($timeToWait, $Locator)

public function waitElementToAppearByLocator($timeToWait, $Locator)
    {
        $this->webDriver->wait($timeToWait, 200)->until( //Указываем таймаут ожидания элемента, в случае, если элемент не *объявится* в течение указанного времени, тест упадет с ошибкой TimeoutException
            WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::Locator($Locator)));  //Указываем локатор элемента, появления которого ждём
    }

 

2.Методы для ожидания пропадания элементов на странице:

Методы похоже имеют 2 параметра, время ожидания, и локатор элемента, данные методы используются в обратной ситуации, когда мы ждем пропадания элементов, в реальности применяются, когда надо убедиться что мы действительно покинули предыдущую страницу, закрыли окно, таблицу, айфрейм

->waitElementToDisappearByCssSelector($timeToWait, $cssSelector)
->waitElementToDisappearByID($timeToWait, $id)
->waitElementToDisappearByXpath($timeToWait, $xpath)
->waitElementToDisappearByClass($timeToWait, $className)

Общая структура метода ->waitElementToDisappearByLocator($timeToWait, $Locator)

public function waitElementToDisappearByLocator($timeToWait, $Locator)
    {
        $this->webDriver->wait($timeToWait, 200)->until( //Указываем таймаут ожидания элемента, в случае, если элемент не *пропадет* в течение указанного времени, тест упадет с ошибкой TimeoutException
            WebDriverExpectedCondition::invisibilityOfElementLocated(WebDriverBy::Locator($Locator)));  //Указываем локатор элемента, пропажи которого ждём
    }

 

3.Методы для ожидания доступности взаимодействия с элементом на странице:

Методы имеют 2 параметра, время ожидания, и локатор элемента, данные методы используются в ситуации, когда элемент присутствует на странице, но находится в заблокированном для клика состоянии, с их помощью мы ждем возможности взаимодействия с ними

->waitElementUntilClickableByXpath($timeToWait, $xpath)
->waitElementUntilClickableById($timeToWait, $id)

Общая структура метода ->waitElementUntilClickableByLocator($timeToWait, $Locator)

public function waitElementUntilClickableByLocator($timeToWait, $Locator)
    {
        $this->webDriver->wait($timeToWait, 200)->until(  //Указываем таймаут ожидания активности элемента, иначе TimeoutException
            WebDriverExpectedCondition::elementToBeClickable(WebDriverBy::Locator($Locator))); //Указываем локатор элемента, активности которого ждём
    }

 

4.Метод для ожидания браузерного Алерта:

Метод ждет указанное время до появления браузерного алерта

->waitAlertIsPresent($timeToWait)

Общая структура метода ->waitAlertIsPresent($timeToWait)

public function waitAlertIsPresent($timeToWait)
    {
        $this->webDriver->wait($timeToWait, 200)->until(  //Указываем таймаут ожидания алерта, иначе TimeoutException
            WebDriverExpectedCondition::alertIsPresent());
    }

 

5.Метод для ожидания айФреймов:

Метод ждет указанное время появления айфрейма с указанным ID

->waitFrameToBeAvailableAndSwitchToIt($timeToWait, $frame_id)

Общая структура метода ->waitFrameToBeAvailableAndSwitchToIt($timeToWait, $frame_id)

public function waitFrameToBeAvailableAndSwitchToIt($timeToWait, $frame_id)
    {
        $this->webDriver->wait($timeToWait, 200)->until(  //Указываем таймаут ожидания айФрейма, иначе TimeoutException
            WebDriverExpectedCondition::frameToBeAvailableAndSwitchToIt($frame_id)); //Указываем ID айФрейма
    }

 

6.Универсальный метод для ожидания лоадера (перекрывает страницу, пока на ней не завершатся все операции):

Метод ждет, пока отработают все действия на странице, блокируемой лоадером

->waitLoader()

Общая структура метода ->waitLoader()

public function waitLoader() {
        $this->waitElementToDisappearByXpath(10,'//*[@id="loading" and contains(normalize-space(@style), \'display: none\')]'); //Здесь указан локатор стандартного лоадера, который используется по всей тестируемой системе
        sleep(1); //дополнительная секунда ожидания
    }

17.07.2010 18:42

Комментарии

Комментариев пока нет.


Copyrights © 2007 - 2026 YaPro.Ru