Тестирование: Действия с iFrame

1.Работа с фреймами и их поиск

Например происходит с помощью локатора ID:

       $this->webDriver->switchTo()->frame("dialogIFrame");


В ситуации когда iFrame не имеет ID его можно найти через другой локатор, и объявить как переменную, например:

        $iframe = $this->webDriver->findElement(WebDriverBy::xpath('//*[@id="cke_1_contents"]/iframe')); //объявляем айфрейм в переменную, находим его через xpath
        $this->webDriver->switchTo()->frame($iframe); // Вместо ID айфрейма подсовываем сам айфрейм в переменной

2.Выход из айфрейма на уровень выше

Необходимо что бы выйти из айфрейма и провести взаимодействие с элементами на родительском уровне страницы:

$this->webDriver->switchTo()->defaultContent();

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

Метод ждет указанное время появления айфрейма с указанным 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 айФрейма
    }

10.12.2010 08:44

Комментарии

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


Copyrights © 2007 - 2026 YaPro.Ru