2017-02-16 7 views
1

Ich habe dieses Code-Snippet zum automatischen Öffnen der gleichen URL "google.com" in mehreren Registerkarten in Firefox versucht. Aber es wird immer noch nur in neuen Windows geöffnet. Da ich diese URL nur öffnen möchte, möchte ich nicht, dass der Handle hin- und herwechselt.Selen öffnende mehrere Registerkarten funktioniert nicht

Können Sie mir bitte helfen, das finden, was mit meinem Code falsch:

public class MultipleTabsWebinar { 
public static void main(String[] args) throws InterruptedException{ 
    List drivers = new ArrayList(); 
    for(int i = 0; i < 5; i++){ 
     WebDriver driver; 
     System.setProperty("webdriver.gecko.driver", "C:\\geckodriver-v0.11.1-win64\\geckodriver.exe"); 
     System.out.println("Hello World Test on AMS148"); 
     driver = new FirefoxDriver(); 
     driver.get("http://10.3.3.148"); 
     Thread.sleep(100); 
     driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t"); 
     drivers.add(driver); 
    } 
    for(int i = 0; i < drivers.size(); i++){ 
     ((WebDriver) drivers.get(i)).close(); 
    } 
} 

}

+1

Sie öffnen mit jeder Iteration eine neue separate Browserinstanz. – qqilihq

+0

Danke, aber dann, wie kann ich 15 Registerkarten öffnen und auf die oben genannte URL in allen 15 Registerkarten gehen – a4aravind

+1

Nur nicht instanziieren Sie einen neuen WebDriver in jeder Iteration, aber teilen Sie eine einzelne Instanz. Die restlichen Teile des Codes sollten in Ordnung sein (das Senden der Tastenkombination ist afaik die einzige Möglichkeit, eine neue Registerkarte zu öffnen). – qqilihq

Antwort

1

können Sie unter Code versuchen:

JavascriptExecutor jse = (JavascriptExecutor)driver; 
for(int i = 0; i < 15; i++) 
    { 
    jse.executeScript("window.open('https://google.com');"); 
    } 

Diese erlauben sollten Sie Google-Suchseite zu öffnen in mehreren neuen Tabs

Beachten Sie, dass (wie in den Kommentaren erwähnt wurde) Sie nicht brauchen initialisieren WebDriver Instanz in einer Schleife