使用 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();
      }
   }
}

输出

更新于:07-4-2021

5 千次浏览

开启你的职业生涯

完成课程,获得认证

开始
广告