2017-06-29 3 views
0

Ich öffne eine Website in Chrom, aber vorher bekomme ich Chrome-Einstellungen Fenster in jedem Lauf.Ich möchte zu einem neuen Fenster wechseln und schließen Sie die vorherige.Ich habe versucht, driver.close() und driver.quit(), aber das ganze Fenster wird geschlossen.Wechseln Sie zu bestimmten Registerkarte und schließen Sie andere Registerkarten

1) Wie kann ich herausfinden, welches als untergeordnetes Fenster und welches als übergeordnetes Fenster betrachtet wird? 2) Wie schließe ich das Fenster als "Chrome Settings"? Unten ist der Code, den ich verwende:

System.setProperty ("webdriver.chrome.driver", ".//chromedriver.exe");

+0

Ich habe versucht, diese Seite in meinem Chrom zu öffnen. es öffnet keine Sicherheitseinstellungen für mich –

+0

Wie viele Tabs insgesamt gibt es? Sobald das Skript gestartet wurde, wo der Selen Fokus liegt? in dieser Sicherheitsseite? –

+0

Yes..That Chrome-Einstellungen kommt nicht in anderen System..nur in meinem System .. :(Also einschließlich Chrome-Einstellungen .. Ich bekomme zwei Tabs und will zu Demoqa Site Tab wechseln und schließen Sie die Chrome-Einstellung Registerkarte .. – Rupali

Antwort

1

Die Idee ist, die aktuelle Fenster-ID (Eltern) zu erhalten und auch alle ID des Fensters einschließlich aktueller Fenster zu erhalten. Wechseln Sie dann nacheinander zu allen verfügbaren Fenstern und prüfen Sie, ob es sich um das übergeordnete Fenster handelt, und schließen Sie es dann.

Nehmen wir an, Sie haben jetzt zwei Tabs geöffnet und Sie sind in der ersten Registerkarte (Eltern). In diesem Fall ist es die Registerkarte Sicherheit.

String winHandleBefore = driver.getWindowHandle(); 

    //All tab's id (security + toolsQA) and storing it. 
    Set<String> all = driver.getWindowHandles(); 

    //Get all the tab id's including security and iterate 
    for(String winHandle : driver.getWindowHandles()) 
    { 
     if(winHandle.equals(winHandleBefore)) 
     { 
     //Condition satisfied. Switching to the security tab and closing it 
     driver.switchTo().window(winHandle); 
     driver.close(); 

     } 
    } 
    //Now the security tab will be closed we need to switch to the toolsQA whose id is in "all" 
    //Removing the security tab id from all. 
    all.remove(winHandleBefore); 
    //Now we have only one toolsqa id in "all" 
    for(String winHandle : all) 
    { 

     driver.switchTo().window(winHandle); 
     //Now in toolsQA 

Hinweis: Da wir nur zwei Registerkarten in diesem Fall ist, könnte diese Lösung nicht die beste sein, aber dies sollte funktionieren. Vielen Dank.

+0

Thanks..it gearbeitet .. :) Nur eine kleine Änderung des Codes benötigt hier: if (! winHandle.equals (winHandleBefore)) //! benötigt wie toolsqa als Elternteil nimmt. Vielen Dank für Ihre Unterstützung .. :) – Rupali

+0

Okay. Das ist gut. –

Verwandte Themen