2014-08-27 3 views
6

ich zwischen dem Browser-Tabs wechseln muß, verwendete den folgenden Code,Wechsel zwischen Browser-Tabs mit Selenium WebDriver mit Java

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

Es wurde richtig manchmal nur funktioniert, aber manchmal ist es eine Ausnahme darstellt. Kann mir jemand vorschlagen, gibt es andere Anweisungen zum Wechseln zwischen Tabs in einem einzigen Fenster mit Java.

+0

Wenn es Fehler wirft und welche Ausnahme bekommen Sie? –

+3

mögliches Duplikat von [Registerkarten mit selen Webdriver] (http://stackoverflow.com/questions/12729265/switch-tabs-using-selenium-webdriver) –

+0

Iam die folgende Ausnahme: Ausnahme im Thread "Haupt" org.openqa .selenium.remote.UnreachableBrowserException: Fehler beim Kommunizieren mit dem Remote-Browser. Es könnte gestorben sein. – mahi

Antwort

8

Hier müssen Sie die Fenstergrifffunktion verwenden. Hier ist ein Beispiel-Arbeitscode in Java:

Hope this help!

3

Das Wechseln zwischen Browser-Fenstern unterscheidet sich von dem Wechseln von s/w-Registerkarten.

In einigen Browser Fensterhandler-Befehl kann funktionieren, aber es funktioniert nicht in allen Browsern.

Hier ist die Lösung S/W-Tabs

für die Navigation links nach rechts zu navigieren:

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

Für die Navigation rechts nach links:

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

In meinem Fall des folgender Code funktioniert einwandfrei:

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);