在C#中使用Selenium打开新窗口

时间:2015-09-11 09:25:13

标签: c# visual-studio-2012 selenium-webdriver

我正在尝试使用相同的webdriver或任何其他技术在Firefox中打开新窗口。

如果我正在www.abc.com的一个页面上工作,现在我想打开另一个页面,www.xyz.com并且打开后我必须执行一些操作并比较一些项目来自" abc"页面" xyz"页。

比较后,我想切换回" abc"的原始页面。以下是我使用的代码块:

            IWebDriver iWebDriver = new FirefoxDriver();
            iWebDriver.Manage().Cookies.DeleteAllCookies();
            iWebDriver.Navigate().GoToUrl("https://www.google.com/");
            iWebDriver.Manage().Window.Maximize();
            string winHandler = iWebDriver.CurrentWindowHandle;
            IWebDriver iiWebDriver = new FirefoxDriver();// trying this to open new window
            iiWebDriver.Navigate().GoToUrl("https://www.facebook.com/");
            iiWebDriver.Manage().Window.Maximize();
            System.Threading.Thread.Sleep(5000);
            iiWebDriver.SwitchTo().Window(winHandler); // this aint swithcing back to the previously opened window

2 个答案:

答案 0 :(得分:0)

您启动的代码有两个独立的浏览器,每个浏览器都由自己的驱动程序控制。 iWebDriver是控制浏览器并打开谷歌页面的驱动程序,iiWebDriver是控制浏览器并打开Facebook页面的驱动程序。如果您想对Google页面执行某些操作,请使用iWebDriver。如果您想对Facebook页面执行某些操作,请使用iiWebDriver。你不需要弄乱窗口把手。窗口句柄方法用于例如在单个浏览器实例上出现弹出窗口时。

答案 1 :(得分:0)

使用此选项打开新标签页

driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");

这将按下 ctrl + t 键,因此新选项卡将被打开。