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

Chrome中的Selenium Java新标签页-无法打开,继续在同一个标签页中打开URL

佟翰林
2023-03-14
package javaapplication1;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class JavaApplication1 {
    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Aca\\desktop\\chromedriver.exe");
        // Initialize driver
        WebDriver driver = new ChromeDriver();
        //Maximize browser window
        driver.manage().window().maximize();
        //Go to URL
        driver.get("http://www.google.com");
        //Set timeout
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        // Open new tab  – May be you are stuck here
        driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
        //Go to URL
        driver.get("http://www.gmail.com");
        //Set new tab timeout
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        
    }
}

我正在尝试打开一个新选项卡,但前一个选项卡仍处于打开状态。我无法打开新选项卡。它一直在同一个选项卡中打开URL。我也尝试过使用Actions。

共有3个答案

宿淳
2023-03-14

请尝试此操作在Chrome和Selenium Java中打开新选项卡。

     package com.sample;



        import org.openqa.selenium.chrome.ChromeDriver;
        import org.openqa.selenium.chrome.ChromeOptions;

        public class NewWindow {

            public static void main (String[] args){
                System.setProperty ("webdriver.chrome.driver", "C:\\Chrome Driver\\chromedriver.exe");

                ChromeOptions options = new ChromeOptions(); 
                options.addArguments("disable-arguments");


                WebDriver driver = new ChromeDriver();
                driver.get("https://www.google.com");

((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');");

        }
    }
柴霖
2023-03-14

这是chromedriver本身的问题。查看提交的相关错误

须捷
2023-03-14

您需要将驱动程序切换到新选项卡。在Chrome中,它就像切换窗口一样完成

String tabHandle = driver.getWindowHandle();

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

// switch to the new window
for (String handle : driver.getWindowHandles()) {
    if (!handle.equals(tabHandle))
    {
        driver.switchTo().window(handle);
    }
}

driver.get("http://www.gmail.com");

// close the new tab and switch back to the old one
driver.close();
driver.switchTo().window(tabHandle);

附带说明一下,imicitly的等待是为驱动程序定义的,而不是选项卡/窗口。打开新选项卡后无需再次定义。

 类似资料:
  • 问题内容: 在chrome中,这会在新标签页中打开: 这会在新窗口中打开(但我也想在新标签页中打开它: 这可行吗? 问题答案: 您不能直接控制它,因为它是由Internet Explorer用户控制的选项。 使用Window.open使用不同的窗口名称打开页面将在新的浏览器窗口(如弹出窗口)中打开,或者在用户配置的浏览器中打开。 编辑: 更详细的解释: 1. 在现代浏览器中,window.open

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

  • 问题内容: 我想使用Javascript在其他标签中打开新页面,但仍将重点放在当前标签上。我知道我可以这样做: 但是,当我在chrome中执行此操作时,它会闪烁新标签一会儿,然后再切换回当前标签。我想避免这种情况。 该应用程序是个人书签,因此仅需在最新的Chrome中运行。 问题答案: 更新:谷歌浏览器的版本41 似乎已更改行为。 这可以通过在属性属性设置为所需的动态生成元素上模拟+ (或打开背景

  • 在页面中收集各种链接后,我点击这些链接并将其收集成汤。现在的问题是,链接在新标签中打开。我想在代码打开新标签中的下一个链接之前关闭标签。下面是代码片段。收完汤后,请帮我把每个标签关上。 我用python 3.7硒铬驱动

  • 本文向大家介绍Window.Open如何在同一个标签页打开,包括了Window.Open如何在同一个标签页打开的使用技巧和注意事项,需要的朋友参考一下 如果有Ajax,那么设置

  • 问题内容: 我有以下使用Vaadin编写的代码。当用户单击按钮时,代码将打开页面。 我的问题是我有什么办法指定要在新标签页中打开页面吗? 谢谢。 问题答案: 该窗口的名字是很重要的位置。要注意的是,你还可以有一个浏览器 将 可以在新窗口中打开资源来代替。 该方法还有另一个签名,即 可能符合要求。HTH。 参考:Page(Vaadin 7.2.1 API) 。