2017-02-16 57 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实例