当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium在Chrome中打开新标签并切换到Java中的新标签

仲孙才捷
2023-03-14

这是我写的代码,以打开一个新标签在已经打开Chrome但它是重定向到第二个url在现有的标签只有。

我想打开一个新选项卡并加载“www.mailinator.com”的url

System.setProperty("webdriver.chrome.driver","D:\\Vijayalaxmi Testing\\BrowserDrivers\\ChromeDriver\\chromedriver.exe" );
    obj=new ChromeDriver();
    String baseUrl="https://www.google.co.in/";
    obj.get(baseUrl);

    obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");


    obj.get("https://www.mailinator.com/");

有人能帮我吗?

共有2个答案

艾和通
2023-03-14

使用 driver.switchTo().window(tabs.get(1)); 打开新选项卡

obj=new ChromeDriver();
String baseUrl="https://www.google.co.in/";
obj.get(baseUrl);

obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");

ArrayList<String> tabs = new ArrayList<String> (obj.getWindowHandles());
driver.switchTo().window(tabs.get(1)); //switches to new tab

obj.get("https://www.mailinator.com/");

driver.switchTo().window(tabs.get(0)); // switch back to old
宦烈
2023-03-14

您可以使用javascript打开新选项卡

public void openNewTab() {
    ((JavascriptExecutor)driver).executeScript("window.open('about:blank','_blank');");
}

如果您想在新选项卡中执行操作,您可以使用:

< code>driver.switchTo()。windows();此方法接受字符串作为参数。准确地说是窗户把手

你可以得到所有这样的手柄

driver.getWindowHandles().这将返回当前浏览器中所有句柄的集合。

为了切换到新创建的选项卡,遍历句柄并使用 switchTo() 方法,如下所示:

    Set<String> handles = driver.getWindowHandles();
    String currentWindowHandle = driver.getWindowHandle();
    for (String handle : handles) {
        if (!currentWindowHandle.equals(handle)) {
            driver.switchTo().window(handle);
        }
    }

警告:如果您有 2 个以上的选项卡,这可能会很棘手。

 类似资料:
  • 新选项卡正在打开,但URL链接未打开。

  • 我正在使用: Chrome55.0.2 Selenium WebDRiver 3.0.1与ChromeDRiver C#4.6.1(VS2015社区版) 我正在编写打开Chrome的自动化代码,打开一个选项卡,并导航到一个主页面URL。这个主页有我解析生成二级页面URL的信息。我的问题是,我不能编写在二级页面加载后切换回主页选项卡的代码,也不能编写从不离开主页的代码。我将解释我所追求的两个选择:

  • 很好的一天。请您通过打开Chrome浏览器创建一个新选项卡,在其中执行一些操作,关闭新选项卡,然后返回第一个选项卡并继续在其中工作,来判断Selenium VBA是否可行? 我用以下代码打开浏览器:

  • 在将此标记为重复之前。请阅读问题。这种问题我见过很多回答。但是没有一个真的管用。 这是我的代码。当我运行这个而不是打开一个新选项卡时,它只会在当前选项卡中打开。我如何才能在新选项卡中打开第二个链接?

  • 问题内容: 我想使用Selenium WebDriver和Python在不同的选项卡中打开很多URL。 我不确定出了什么问题: 我查阅了教程,在我看来,这段代码应该可以实现我想要的功能。实际发生的情况是打开浏览器,打开url1,打开一个新标签, 但是 url2然后加载到原始标签中,而不是新标签中(即使新标签似乎是活动的)。 (我使用的是Chrome,因为使用Firefox时我根本无法加载任何URL

  • 如何在Chrome上打开新标签。我需要从中获取一些数据,回到我之前的标签并输入数据。我知道如何遍历标签,但我无法打开新标签。 硒版本:3.5.2 Chrome版本:60