Например происходит с помощью локатора 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 айфрейма подсовываем сам айфрейм в переменной
Необходимо что бы выйти из айфрейма и провести взаимодействие с элементами на родительском уровне страницы:
$this->webDriver->switchTo()->defaultContent();
Метод ждет указанное время появления айфрейма с указанным 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 айФрейма
}
Комментарии
Комментариев пока нет.