使用 C# 和 Selenium - 如何在 Csharp Selenium 中将一个选项卡切换到另一个选项卡?
我们可以在 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://tutorialspoint.com/index.htm"; IWebDriver driver; [SetUp] public void Setup(){ //creating object of FirefoxDriver driver = new FirefoxDriver(""); } [Test] public void Test2(){ //implicit wait driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); //URL launch driver.Navigate().GoToUrl(url); //identify element then click IWebElement l = driver.FindElement(By.XPath("//*[text()='Jobs']")); l.Click(); //switch to second tab driver.SwitchTo().Window(driver.WindowHandles[1]); //get current window handle id Console.WriteLine ("Current window id: " + driver.CurrentWindowHandle); Console.WriteLine("Page title in second tab is: " + driver.Title); //close second tab driver.Close(); //switch to first tab 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(); } } }
输出
广告