使用selenium webdriver专注于最近打开的选项卡

时间:2016-07-15 06:51:48

标签: java selenium selenium-webdriver

我有一个网站,当我按下click按钮时,它会在同一浏览器中打开包含链接的新标签。

我想告诉selenium专注于最近打开的标签。

我尝试了很多方法,但在我的情况下,它们似乎都没有用。

我试过了:

方法1:

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

方法2:

((JavascriptExecutor) webDriver).executeScript("window.focus();");

方法3:

driver.switchTo().window(driver.getWindowHandles().last());

1 个答案:

答案 0 :(得分:1)

试试这个code,使用Java Robot。这对我有用。

ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
        System.out.println(tabs2.size());

        for (int i = tabs2.size()-1; i>=0; i--) {
            Thread.sleep(2000);
            driver.switchTo().window(tabs2.get(i));
            Robot robot = new Robot();

            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_TAB);
            robot.keyRelease(KeyEvent.VK_TAB);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            System.out.println(driver.getTitle() + "i: " + i);
           // do what you needed
        }