Java 如何在同一浏览器中打开多个选项卡?

Java 如何在同一浏览器中打开多个选项卡?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,在我的代码中,我想在同一浏览器中打开两个选项卡,但这段代码只打开一个选项卡。如何在同一浏览器中打开多个选项卡?您无法在其他选项卡中打开Gmail,因为焦点仍在第一个窗口,因为selenium使用其窗口句柄标识要使用的特定窗口,因此您必须首先使用诸如driver.switchTo().window(句柄值)之类的句柄切换该特定窗口 以下是完整的代码: import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org

在我的代码中,我想在同一浏览器中打开两个选项卡,但这段代码只打开一个选项卡。如何在同一浏览器中打开多个选项卡?

您无法在其他选项卡中打开Gmail,因为焦点仍在第一个窗口,因为selenium使用其窗口句柄标识要使用的特定窗口,因此您必须首先使用诸如driver.switchTo().window(句柄值)之类的句柄切换该特定窗口

以下是完整的代码:

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class newtab {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String driverpath = "geckodriver path\\";
        System.setProperty("webdriver.gecko.driver",driverpath+"geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.google.com");
        driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
        driver.get("http://www.gmail.com"); 


    }

}
publicstaticvoidmain(字符串[]args){
System.setProperty(“webdriver.chrome.driver”,“c:\\SRP\\chromedriver.exe”);
WebDriver驱动程序=新的ChromeDriver();
驱动程序。获取(“https://www.google.com");
字符串newTab=null;
字符串baseTab=driver.getWindowHandle();
driver.findElement(通过.cssSelector(“body”)).sendKeys(Keys.CONTROL+“t”);
设置allTabs=driver.getWindowHandles();
所有选项卡。删除(基本选项卡);
迭代器itr=allTabs.Iterator();
while(itr.hasNext()){
newTab=(字符串)itr.next();
}
driver.switchTo()窗口(newTab);
驱动程序。获取(“http://www.gmail.com"); 
}
导入java.awt.awt异常;
导入java.awt.Robot;
导入java.awt.event.KeyEvent;
导入java.util.Set;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.firefox.FirefoxDriver;
公共类纽塔布{
公共静态void main(字符串[]args)引发AWTException{
System.setProperty(“webdriver.gecko.driver”,“C:\\Users\\User-024\\Downloads\\geckodriver.exe”);
WebDriver=newfirefoxdriver();
驱动程序。获取(“https://www.google.com");
字符串parent=driver.getWindowHandle();
机器人r=新机器人();
r、 按键(KeyEvent.VK_控件);
r、 按键(KeyEvent.VK_T);
设置browsers=driver.getWindowHandles();
for(字符串i:浏览器){
如果(!i.equals(父级)){
驱动程序切换到()窗口(i);
驱动程序。获取(“http://www.gmail.com");
}
}
}
}

这段代码适合我。

我已经编写了简单的代码,它适合我。它在同一浏览器的不同选项卡中打开两个不同的URL

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.Set;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class NewTab {

    public static void main(String[] args) throws AWTException {
        System.setProperty("webdriver.gecko.driver", "C:\\Users\\User-024\\Downloads\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.google.com");
        String parent = driver.getWindowHandle();

        Robot r = new Robot();
        r.keyPress(KeyEvent.VK_CONTROL);
        r.keyPress(KeyEvent.VK_T);

        Set<String> browsers = driver.getWindowHandles();
        for (String i : browsers) {
            if (!i.equals(parent)) {
                driver.switchTo().window(i);
                driver.get("http://www.gmail.com");
            }
        }
    }
}

请把标题写得简短些。它们不需要包含整个问题。。。代表问题的几句话可能是fine@yakobom如果你问我,这个问题的标题很精确。@Kushal,当然-这是因为它是经过编辑的,因为我对此发表了评论(我无法执行编辑)。这是里面文字的副本。欢迎:)很高兴帮助你
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.Set;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class NewTab {

    public static void main(String[] args) throws AWTException {
        System.setProperty("webdriver.gecko.driver", "C:\\Users\\User-024\\Downloads\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.google.com");
        String parent = driver.getWindowHandle();

        Robot r = new Robot();
        r.keyPress(KeyEvent.VK_CONTROL);
        r.keyPress(KeyEvent.VK_T);

        Set<String> browsers = driver.getWindowHandles();
        for (String i : browsers) {
            if (!i.equals(parent)) {
                driver.switchTo().window(i);
                driver.get("http://www.gmail.com");
            }
        }
    }
}
public void cls(){
    WebDriver driver = new FirefoxDriver();

driver.get("http://google.com");
String baseTab = driver.getWindowHandle();
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.get("http://gmail.com"); 

}