2016-12-07 37 views
0

場景:可以說我有兩個選項卡TAB1和TAB2。我想根據特定標準在這些標籤之間切換。通過下面的代碼,我可以在選項卡之間切換驅動程序,但選項卡焦點不會發生變化。能夠切換驅動程序但不是焦點

幫我看看這個..有沒有可能做到這一點?

public static Boolean SwitchWindow(string title) 
{ 
    try 
    { 
     var currentWindow_title = Driver.Title; 
     var currenhandle = Driver.CurrentWindowHandle; 
     var availableWindows = new List<string>Driver.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; 
        } 
       } 
      } 
     } 
    } 
} 
+0

你所說的「標籤焦點是沒有得到改變」是什麼意思?究竟發生了什麼? – Guy

+0

假設我在TAB1中,並且我想要我的焦點(從用戶查看現在活動選項卡是TAB1)。現在我希望我的驅動程序和焦點切換到TAB2。當我使用driver.switchto()。window(windowhandle2) ,驅動程序正在切換到TAB2,但從用戶視圖仍然顯示在TAB1 –

+0

您是否需要任何進一步的信息? –

回答

0

我試過在window.focus()中使用JavaScript,它沒有工作.PBB代碼。

公共靜態布爾SwitchWindow(字符串標題) { 嘗試 {VAR = currentWindow_title WebDriverUtilities3.WebDriver.Driver.Title; var currenhandle = WebDriverUtilities3.WebDriver.Driver.CurrentWindowHandle; var availableWindows = new List(WebDriverUtilities3.WebDriver.Driver.WindowHandles); 如果(currentWindow_title =標題!) { 的foreach(串w的availableWindows) { 如果(currenhandle =瓦特!) { WebDriverUtilities3.WebDriver.Driver.SwitchTo()窗口(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; 
         } 
        } 

       } 
      } 
1

如果我沒有錯,你想打開子窗口。 試試這個,希望這將有助於你

//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(); 
+0

它不工作。實際上「driver.switchTo()」正在切換我的驅動程序,但不是選項卡的焦點。 –

+0

@PrathyushaDwibhashi,試試這個專注 – Swa

+0

JavascriptExecutor jse =(JavascriptExecutor)驅動程序; (「document.getElementById('YourControlID')。focus()」); – Swa

相關問題