Методы имеют 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 параметра, время ожидания, и локатор элемента, данные методы используются в обратной ситуации, когда мы ждем пропадания элементов, в реальности применяются, когда надо убедиться что мы действительно покинули предыдущую страницу, закрыли окно, таблицу, айфрейм
->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))); //Указываем локатор элемента, пропажи которого ждём
}
Методы имеют 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))); //Указываем локатор элемента, активности которого ждём
}
Метод ждет указанное время до появления браузерного алерта
->waitAlertIsPresent($timeToWait)
Общая структура метода ->waitAlertIsPresent($timeToWait)
public function waitAlertIsPresent($timeToWait)
{
$this->webDriver->wait($timeToWait, 200)->until( //Указываем таймаут ожидания алерта, иначе TimeoutException
WebDriverExpectedCondition::alertIsPresent());
}
Метод ждет указанное время появления айфрейма с указанным 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 айФрейма
}
Метод ждет, пока отработают все действия на странице, блокируемой лоадером
->waitLoader()
Общая структура метода ->waitLoader()
public function waitLoader() {
$this->waitElementToDisappearByXpath(10,'//*[@id="loading" and contains(normalize-space(@style), \'display: none\')]'); //Здесь указан локатор стандартного лоадера, который используется по всей тестируемой системе
sleep(1); //дополнительная секунда ожидания
}
Комментарии
Комментариев пока нет.