2017-02-16 56 views
1

我試過這個代碼片段來自動在Firefox的多個標籤中打開相同的網址'google.com'。但它仍然只能在新的Windows中打開。由於我只想打開該網址,因此我不想讓手柄來回切換。硒打開多個標籤不工作

能否請你幫我看看有什麼錯我的代碼:

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

您在每次迭代中打開一個新的單獨瀏覽器實例。 – qqilihq

+0

謝謝,但是我怎樣才能打開15個選項卡並轉到所有15個選項卡中的上述url – a4aravind

+1

只需在每個迭代中實例化一個新的WebDriver,但共享一個實例即可。代碼的剩餘部分應該沒問題(發送組合鍵只是打開新選項卡的唯一方法)。 – qqilihq

回答

1

你可以試試下面的代碼:

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

這應該允許你打開谷歌搜索頁面在多個新選項卡中

請注意(如評論中所述)您不需要在迴路內初始化WebDriver實例