2016-12-07 16 views
0

シナリオ: TAB1とTAB2の2つのタブがあります。私はこれらのタブを特定の基準に基づいて切り替えたいと思っています。以下のコードでは、タブ間でドライバを切り替えることはできますが、タブのフォーカスは変更されません。ドライバを切り替えることはできますが、フォーカスを切り替えることはできません

これを手伝ってください。これを達成する可能性はありますか?

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

JavaScriptをwindow.focus()で使用しようとしましたが、作業ができませんでした.PFBコード。

パブリック静的ブールれswitchwindow(文字列のタイトル) {{ VAR currentWindow_title = WebDriverUtilities3.WebDriver.Driver.Title を試してみてください。 var currenhandle = WebDriverUtilities3.WebDriver.Driver.CurrentWindowHandle; var availableWindows =新しいリスト(WebDriverUtilities3.WebDriver.Driver.WindowHandles); IF(!currentWindow_title =タイトル) {foreachの(availableWindows中のW列) {(currenhandle = W!) {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)driver; jse.executeScript( "document.getElementById( 'YourControlID')。focus()"); – Swa

関連する問題