-1

Ich versuche, zu einem anderen Fenster zu navigieren. Aber firefox öffnet neue Seite in neuer Registerkarte, anstelle von neuem Fenster. Ich kontrolliere die Checkbox und aktiviere beide Optionen.Wie öffne ich ein neues Fenster anstelle der neuen Registerkarte

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
    System.setProperty("webdriver.gecko.driver", "C:\\Selenium Purely\\geckodriver\\geckodriver.exe"); 
    WebDriver driver = new FirefoxDriver(); //Launches FireFox browser with blank URL 
    driver.get("http://the-internet.herokuapp.com/windows"); 

    Thread.sleep(4000); 

    String parentwindow = driver.getWindowHandle(); 

    System.out.println("Parent window handle is "+parentwindow); 
    System.out.println("Parent window title is "+driver.getTitle()); 

    driver.findElement(By.partialLinkText("Click Here")).click(); 

    Set <String> s1 = driver.getWindowHandles(); 

    Iterator <String> i1= s1.iterator(); 

    while (i1.hasNext()) 

      { 
       String childwindow = i1.next(); 

       System.out.println("Child window handle is "+childwindow); 
       System.out.println("Child window title is "+driver.getTitle()); 

       if(parentwindow != childwindow) 
       { 
        driver.switchTo().window(childwindow); 
        Thread.sleep(4000); 

       } 

      } 
+0

Sie wollen also ein neues Fenster öffnen? Klicken Sie hier? –

+0

Ja. Es ist eine kostenlose Seite für Lernzwecke. Wenn ich auf Click Here klicke, öffnet es sich nicht in einem neuen Fenster - und öffnet sich in einem neuen Tab. Manuell wenn ich das mache, kann ich in einem neuen Fenster öffnen, da ich die Eigenschaft entsprechend eingestellt habe. Aber nicht trainieren. – Jafar

+0

Selen Version 3.3.1 - Firefox 52 - – Jafar

Antwort

0

Nun, mit Selen arbeiten müssen Sie den vollständigen Dateipfad von Firefox exe in Ihrem Code nicht hinzufügen, wie Sie es in Ihrem System PATH-Variablen hinzugefügt werden. So können Sie diese Zeile weglassen:

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");

Jetzt, Firefox zu machen zu öffnen URLs in neuem Windows gibt es einige Einstellungen vorgenommen werden. Soweit Ihre Frage How to open a new window instead of new tab hier betrifft, ist der Arbeits Code mit IE:

package demo; 


import java.util.Iterator; 
import java.util.Set; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 


public class TestAnyURLMain { 

    public static void main(String[] args) throws InterruptedException { 


     System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); 
     WebDriver driver = new InternetExplorerDriver(); 
     driver.manage().window().maximize(); 
     driver.get("http://the-internet.herokuapp.com/windows"); 
     Thread.sleep(4000); 
     String parentwindow = driver.getWindowHandle(); 

     System.out.println("Parent window handle is "+parentwindow); 
     System.out.println("Parent window title is "+driver.getTitle()); 

     driver.findElement(By.partialLinkText("Click Here")).click(); 

     Set <String> s1 = driver.getWindowHandles(); 

     Iterator <String> i1= s1.iterator(); 

     while (i1.hasNext()) 

     { 
      String childwindow = i1.next(); 

      System.out.println("Child window handle is "+childwindow); 
      System.out.println("Child window title is "+driver.getTitle()); 

      if(parentwindow != childwindow) 
      { 
       driver.switchTo().window(childwindow); 
       Thread.sleep(4000); 

      } 

     } 

    } 

} 

Lassen Sie mich wissen, ob das Ihnen hilft.

+0

Ja. Ziemlich perfekt mit IE nach der Aktualisierung Deaktivieren Sie den geschützten Modus deaktivieren. Jetzt versuche ich dasselbe mit Firefox. Ich habe hinzugefügt: System.setProperty ("webdriver.firefox.bin", "C: \\ Programme (x86) \\ Mozilla Firefox \\ firefox.exe"); um sicherzustellen, dass es das richtige Profil, das ich auch benutze, abholen .. d. h. manuell funktioniert gut. Nicht über Skript. – Jafar

+0

@Jafar dieses Stück Code 'System.setProperty (" webdriver.firefox.bin "," C: \\ Programme (x86) \\ Mozilla Firefox \\ firefox.exe ");' ist für die älteren Mozila Firefox-Benutzer . Wie Sie Gecko benutzen, lassen Sie diese Zeile weg. – DebanjanB

+0

Dev - Ich habe gerade dieses Stück hinzugefügt, da das Öffnen der neuen Registerkarte nicht funktionierte. Nur Versuch und Irrtum. Aber es hilft mir nicht. – Jafar

Verwandte Themen