0

Meta Schalt -Grid-Safari-Selen stecken auf SafariDriver Launcher Seite [zweiter Tab] durch nicht schließen und nicht zurück zum ersten Tab

OS: OSX El Capitan Selen Version: 2.53.0 Browser : Safari Browserversion: 9.1 SafariDriver-Version: 2.48.0, die auf der SeleniumHQ-Website aktuell ist.

erwartete Verhalten -

SafariDriver Launcher Seite/Reiter automatisch geschlossen bekommen sollten und zum ersten Register geschaltet, wo meine URL geöffnet zu werden.

tatsächliches Verhalten -

Selen auf SafariDriver Launcher Seite [Tab] geklebt wird immer durch nicht schließen und zurück zum ersten Tab

Schritte Wechsel zu reproduzieren -

Der Versuch, eine Anzahl von n auszuführen Testfälle aus TestNG.xml, aber einige TCs werden ordnungsgemäß ausgeführt, indem die SafariDriver Launcher-Seite [Registerkarte] geschlossen wird. Aber Selenium bleibt in wenigen Fällen auf der SafariDriver Launcher-Seite [Tab] stecken, indem es nicht geschlossen wird und zum ersten Tab zurückwechselt, wo meine URL geöffnet wird.

Benötigte Lösung -

Ich will zunächst prüfen, wie viele Tabs derzeit geöffnet sind: -

if(browser.equals("safari")){ 
capability=DesiredCapabilities.safari(); 
capability.setBrowserName("safari"); 
capability.setPlatform(Platform.MAC); 
capability.setVersion("9.1"); 
capability.setJavascriptEnabled(true); 
driver=new RemoteWebDriver(new URL(grid_url),capability); 
driver.get(url); 
Thread.sleep(2000); 
String windowHandle = driver.getWindowHandle(); 
ArrayList tabs = new ArrayList (driver.getWindowHandles()); 
if(tabs.size()>1){ 

     <***Need a solution here to close second tab and switch to first tab***> 
        driver.switchTo().window(tabs.get(0)); 
     } 
} 

Antwort

0

Sie diesen Code verwenden können, das Fenster, das Sie schließen möchten:

for(String handle : driver.getWindowHandles()) { 
     if (!handle.equals(originalHandle)) { //the window handle you want to close 
      driver.switchTo().window(handle); 
      driver.close(); // would close the specific tab you wanted 
     } 
    } 

In Ihrem Fall könnte OriginalHandle das Handle für das aktuelle Fenster (Tab 2) sein.

+0

Hey "" .dieser Dank für die Antwort, Lass mich dich updaten, ob es meiner Anforderung entspricht –

+0

@PraveenPavu: sicher. wc – nullpointer

+0

org.openqa.selenium.NoSuchWindowException: Der Treiber ist nicht auf ein Fenster fokussiert. Sie müssen zu einem Fenster wechseln, bevor Sie fortfahren. (ACHTUNG: Der Server hat keine Stacktrace-Informationen bereitgestellt.) Befehlsdauer oder Timeout: 3 Millisekunden –