2014-08-27 19 views
6

ho bisogno di passare tra le schede del browser, utilizzare il seguente codice,Passa tra le schede del browser utilizzando Selenio WebDriver con Java

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t"); 

E funzionava correttamente a volte solo, ma a volte sta mostrando un'eccezione. Qualcuno mi può suggerire ci sono altre istruzioni per cambiare tab all'interno di una singola finestra usando java.

+0

Quando si generano errori e quale eccezione si ottiene? –

+3

possibile duplicato di [passare schede usando selenio Webdriver] (http://stackoverflow.com/questions/12729265/switch-tabs-using-selenium-webdriver) –

+0

Iam ottenendo la seguente eccezione: Eccezione nel thread "main" org.openqa .selenium.remote.UnreachableBrowserException: errore di comunicazione con il browser remoto. Potrebbe essere morto. – mahi

risposta

8

Qui è necessario utilizzare la funzione di maniglia della finestra. Ecco un esempio di codice di lavoro in Java:

String parentHandle = driver.getWindowHandle(); // get the current window handle 
    System.out.println(parentHandle);    //Prints the parent window handle 
    String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window 
    anchor.click();         //Clicking on this window 
    for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle 
     System.out.println(winHandle); 
     driver.switchTo().window(winHandle);  // switch focus of WebDriver to the next found window handle (that's your newly opened window)    
    } 
//Now your driver works on the current new handle 
//Do some work here..... 
//Time to go back to parent window 
    driver.close();         // close newly opened window when done with it 
    driver.switchTo().window(parentHandle);   // switch back to the original window 

Spero che questo aiuti!

3

Il passaggio tra la finestra del browser è diverso dalla commutazione delle schede in bianco e nero.

In alcuni browser il comando windowhandler potrebbe funzionare ma non funzionerà in tutto il browser.

Ecco la soluzione per navigare b/w schede

per la navigazione da sinistra a destra:

Actions action= new Actions(driver); 
action.keyDown(Keys.CONTROL).sendKeys(Keys.TAB).build().perform(); 

Per la navigazione da destra a sinistra:

Actions action= new Actions(driver); 
action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform(); 
0

Nel mio caso, il il seguente codice funziona bene-

String oldTab=driver.getWindowHandle(); 
    driver.findElement(pageObj.getL_Popup_Window()).click(); 
    ArrayList<String> newTab = new ArrayList<String>(driver.getWindowHandles()); 
     newTab.remove(oldTab); 
     driver.switchTo().window(newTab.get(0)); 
    WebElement ele = driver.findElement(pageObj.getI_input_name()); 
    ele.click(); 
    ele.sendKeys(name); 
    driver.findElement(pageObj.getI_submit()).click(); 
    driver.switchTo().window(oldTab); 
Problemi correlati