能够切换驱动程序而不是焦点

场景:假设我有两个选项卡TAB1和TAB2。 我想根据特定条件在这些选项卡之间切换。 使用下面的代码我可以在选项卡之间切换驱动程序,但选项卡焦点不会改变。

帮助我…这有可能实现这一目标吗?

public static Boolean SwitchWindow(string title) { try { var currentWindow_title = Driver.Title; var currenhandle = Driver.CurrentWindowHandle; var availableWindows = new ListDriver.WindowHandles); if (currentWindow_title != title) { foreach (string w in availableWindows) { if (currenhandle != w) { Driver.SwitchTo().Window(w); var tit = Driver.Title; if (Driver.Title == title) { break; } } } } } } 

如果我没错,你想打开子窗口。 试试这个,希望这对你有所帮助

  //storing parent window reference into string variable String ParentWindow = driver.getWindowHandle(); //switching from parent to pop up window for (String Child_Window : driver.getWindowHandles()) { driver.switchTo().window(Child_Window); //implicit wait for visibility of pop up button driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //explicit wait for visibility of pop up button WebDriverWait wait = new WebDriverWait(driver, 30);// 1 minute wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("??"))); driver.findElement(By.xpath("//input[@value='??']")).click(); } //Switching back to Parent Window driver.switchTo().window(ParentWindow); driver.switchTo().defaultContent(); 

我尝试使用JavaScript与window.focus(),它没有工作.PFB代码。

public static Boolean SwitchWindow(string title){try {var currentWindow_title = WebDriverUtilities3.WebDriver.Driver.Title; var currenhandle = WebDriverUtilities3.WebDriver.Driver.CurrentWindowHandle; var availableWindows = new List(WebDriverUtilities3.WebDriver.Driver.WindowHandles); if(currentWindow_title!= title){foreach(availableWindows中的字符串w){if(currenhandle!= w){WebDriverUtilities3.WebDriver.Driver.SwitchTo()。Window(w);

  IJavaScriptExecutor js = (IJavaScriptExecutor)WebDriverUtilities3.WebDriver.Driver; string a = @"window.blur(); window.focus();"; try { js.ExecuteScript(a); } catch (Exception) { throw; } js = null; var tit = WebDriverUtilities3.WebDriver.Driver.Title; if (WebDriverUtilities3.WebDriver.Driver.Title == title) { break; } } } }