WebDriver: Как переключаться между фреймами (C#)

Фреймы разделяют окно браузера на отдельные области. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью тега frame. Соответственно, при обращению к элементу страницы/фрейма нам нужно удостоверится, что мы находимся в контексте нужного фрема и переключится в случае необходимости. Это обусловлено тем, что каждая страница имеет свою собственную DOM модель. Фреймы, в отличии от окон имеют иерархию. Поэтому, после выполнения нужных действий в фрейме нижнего уровня, нужно вернуться обратно на самый верхний уровень.

Переход на указанный фрейм, в качестве параметра передается имя фрейма.

1
2
3
4
5
        public void SwitchToFrame(string frameName)
        {
            Trace.WriteLine("Switch to the frame: '" + frameName + "'", "Document");
            _driver.SwitchTo().Frame(frameName);
        }
        public void SwitchToFrame(string frameName)
        {
            Trace.WriteLine("Switch to the frame: '" + frameName + "'", "Document");
            _driver.SwitchTo().Frame(frameName);
        }

Переход на фрейм самого верхнего уровня:

1
2
3
4
5
        public void SwitchToDefaultFrame()
        {
            Trace.WriteLine("Switch to the first frame on the page or the main document when a page contains iFrames", "Document");
            _driver.SwitchTo().DefaultContent();
        }
        public void SwitchToDefaultFrame()
        {
            Trace.WriteLine("Switch to the first frame on the page or the main document when a page contains iFrames", "Document");
            _driver.SwitchTo().DefaultContent();
        }