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

本文关键字:新窗口 窗口 Selenium | 更新日期: 2023-09-27 18:12:12

我正在尝试使用相同的web驱动程序或任何其他技术在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

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

您的代码启动了两个独立的浏览器,每个浏览器由它们自己的驱动程序控制。iWebDriver是打开google页面时控制浏览器的驱动程序,iiWebDriver是打开facebook页面时控制浏览器的驱动程序。如果你想做一些与谷歌页面,使用iWebDriver。如果您想对facebook页面做一些事情,请使用iiWebDriver。你不需要弄乱窗户把手。window handles方法用于在单个浏览器实例上出现弹出窗口时使用,例如

使用此命令打开一个新选项卡

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

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