我有一个网站,当我按下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());
答案 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
}