无法在Selenium中打开新标签或新窗口

时间:2018-08-02 03:02:48

标签: selenium-webdriver selenium-chromedriver

我正在尝试使用Keys.CONTROL +“ t”在Chrome中打开一个新标签,但无法正常工作。 这是代码

            System.setProperty("webdriver.chrome.driver", "C:/Downloads/New folder/chromedriver.exe");
            WebDriver driver = new ChromeDriver();
            driver.get("https://www.google.com");               
            driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

执行脚本后,启动chrome并加载google.com,但未打开新标签页。

操作系统:Win-10

硒版本:selenium-java-3.13.0

Chrome版本:68.0.3440.84版(正式内部版本)(64位)

硒3.13.0是否有问题,或者我做错了什么。

PS:我尝试使用JavascriptExecutor,但工作正常。我需要知道为什么 driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t"); 无法正常工作。

预先感谢

4 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

box-shadow

如果您仍然遇到任何问题,请告诉我。

答案 1 :(得分:0)

尝试机器人课程

    WebDriver driver = new ChromeDriver();
    driver.get("https://www.google.com");
    driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);    
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_T);
    robot.keyRelease(KeyEvent.VK_T);
    robot.keyRelease(KeyEvent.VK_CONTROL);

答案 2 :(得分:0)

这是打开新标签页/窗口并检查是否打开新标签页的代码。 如果打开,请切换到该窗口。

windows1 = driver.window_handles
driver.execute_script('window.open()')
windows2 = driver.window_handles
new_windows = list(set(windows2) - set(windows1))
if len(new_windows) == 0:
  print 'ERROR: no new tabs found'
elif len(new_windows) > 1:
  print 'ERROR: multiple new tabs found: ' + new_windows
else:
  new_window = new_windows[0] 

driver.switch_to_window(new_window)

答案 3 :(得分:0)

尝试这个答案对我来说很好

public static void main(String[] args) throws Exception {

    System.setProperty("webdriver.chrome.driver", "C:/Users/sankalp.gupta/Desktop/JAVASELN/chromedriver.exe");
    System.out.println("Ready to launch the browser");

    WebDriver driver = new ChromeDriver();
    driver.get("http://yahoo.com");  
    ((JavascriptExecutor)driver).executeScript("window.open()");
    ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1));
    driver.get("http://google.com");
}

}