WebDriver: Как открыть страницу в новом окне (C#)

В качестве дополнения к предыдущей заметке WebDriver: Как открыть страницу и другие методы управления браузером (C#) сегодня я расскажу как можно открыть ссылку в номом окне браузера. В WebDriver такой возможности не предусмотрено, но эту задачу можно решить используя JavaScript.

Пример реализации метода OpenPageInNewWindow:

1
2
3
4
5
6
7
8
9
10
11
12
13
        public void OpenPageInNewWindow(string pageUrl)
        {
            Trace.WriteLine("Open the page in new window", "Document");
            ExecuteJavaScript("window.open(arguments[0])", pageUrl);
        }
 
        public object ExecuteJavaScript(string javaScript, params object[] args)
        {
            Trace.WriteLine("Executes JavaScript", "Document");
            var javaScriptExecutor = (IJavaScriptExecutor) _driver;
 
            return javaScriptExecutor.ExecuteScript(javaScript, args);
        }
        public void OpenPageInNewWindow(string pageUrl)
        {
            Trace.WriteLine("Open the page in new window", "Document");
            ExecuteJavaScript("window.open(arguments[0])", pageUrl);
        }

        public object ExecuteJavaScript(string javaScript, params object[] args)
        {
            Trace.WriteLine("Executes JavaScript", "Document");
            var javaScriptExecutor = (IJavaScriptExecutor) _driver;

            return javaScriptExecutor.ExecuteScript(javaScript, args);
        }

Пример использования:

1
        Document.OpenPageInNewWindow(pageUrl);
        Document.OpenPageInNewWindow(pageUrl);