C# 与 Selenium - 如何在 C# Selenium 中切换标签页?

seleniumautomation testingtesting tools更新于 2026/1/23 21:22:17

我们可以使用 C# 中的 Selenium webdriver 切换标签页。

有时点击链接或按钮时,可能会在同一个浏览器中打开多个标签页。

默认情况下,webdriver 只能访问父标签页。要访问第二个标签页,我们必须使用 SwitchTo().Window() 方法切换驱动程序焦点。我们要切换到的标签页的窗口句柄 ID 将作为参数传递。

CurrentWindowHandle 方法返回当前处于焦点状态的标签页的窗口句柄 ID。WindowHandles 方法返回浏览器中所有已打开标签页的窗口句柄 ID。

让我们尝试切换浏览器中打开的标签页,如下图所示。 −

语法

driver.SwitchTo().Window(driver.WindowHandles[1]);

示例

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System;
using OpenQA.Selenium;
namespace NUnitTestProject2{
   public class Tests{
      String url =" https://www.tutorialspoint.com/index.htm";
      IWebDriver driver;
      [SetUp]
      public void Setup(){
          //创建 FirefoxDriver 对象
         driver = new FirefoxDriver(&"&";);
      }
      [Test]
      public void Test2(){
          //隐式等待
         driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
         //启动 URL
         driver.Navigate().GoToUrl(url);
         //识别元素然后点击
         IWebElement l = driver.FindElement(By.XPath("//*[text()='Jobs']"));
         l.Click();
         //切换到第二个选项卡
         driver.SwitchTo().Window(driver.WindowHandles[1]);
          //获取当前窗口句柄 ID
         Console.WriteLine
         ("当前窗口 ID:" + driver.CurrentWindowHandle);
         Console.WriteLine("第二个选项卡中的页面标题为:" + driver.Title);
          //关闭第二个选项卡
         driver.Close();
          //切换到第一个标签页
         driver.SwitchTo().Window(driver.WindowHandles[0]);
         IWebElement m = driver.FindElement(By.TagName("h4"));
         Console.WriteLine("Element in first tab is: " + m.Text);
      }
      [TearDown]
      public void close_Browser(){
         driver.Quit();
      }
   }
}

输出


相关文章