2012-07-23 21 views
9

का उपयोग कर दो ब्राउज़र विंडो के बीच स्विच करें मैंने फ़ायरफ़ॉक्स ड्राइवर का उपयोग दो यूआरएल खोलने के लिए किया था। जब भी मैं ड्राइवर का आह्वान करता हूं, नई फ़ायरफ़ॉक्स विंडो खोली जाती है। मुझे इन दो खिड़कियों के बीच स्विच करना है। मैं यह कैसे कर सकता हूँ?सेलेनियम वेबड्राइवर

उत्तर

19

आप विंडो शीर्षक

private void handleMultipleWindows(String windowTitle) { 
      Set<String> windows = driver.getWindowHandles(); 

      for (String window : windows) { 
       driver.switchTo().window(window); 
       if (driver.getTitle().contains(windowTitle)) { 
        return; 
       } 
      } 
     } 

Similary आप विंडो स्विच करने के URL या कुछ अन्य मापदंड इस्तेमाल कर सकते हैं के आधार पर विंडो के बीच स्विच करने के लिए निम्न कोड का उपयोग कर सकते हैं।

+1

धन्यवाद, यह मेरे लिए काम करता है। :) –

+0

मुझे भी! ऐसा करने का बहुत अच्छा तरीका है – sircapsalot

2

मैंने मुख्य WindowHandle पर वापस स्विच करने का दायरा भी जोड़ा है।

आप नीचे दिए गए फ़ंक्शन का उपयोग करने का प्रयास कर सकते हैं बशर्ते आप विभिन्न शीर्षकों वाली विंडो को संभालें।

private String mainWindowsHandle; // Stores current window handle 
public static boolean swithToWindow(WebDriver driver,String title){ 
    mainWindowsHandle = driver.getWindowHandle(); 
    Set<String> handles = driver.getWindowHandles(); // Gets all the available windows 
    for(String handle : handles) 
    { 
    driver.switchTo().window(handle); // switching back to each window in loop 
    if(driver.getTitle().equals(title)) // Compare title and if title matches stop loop and return true 
    return true; // We switched to window, so stop the loop and come out of funcation with positive response 
    } 
    driver.switchTo().window(mainWindowsHandle); // Switch back to original window handle 
    return false; // Return false as failed to find window with given title. 
} 
संबंधित मुद्दे