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();
}
}
}
输出


