使用 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.tw/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 千次瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始
廣告