使用 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(); } } }
輸出
廣告