selenio può solo automatizzare su WebElements del browser. L'apertura di una nuova scheda è un'operazione eseguita sul webBrowser che è un'applicazione indipendente. Per fare ciò possiamo utilizzare la classe Robot dal pacchetto java.util. * Che può eseguire operazioni usando la tastiera e il mouse indipendentemente dal tipo di applicazione. Quindi ecco il codice per la vostra operazione. Si noti che non è possibile automatizzare applicazioni stand alone utilizzando la classe Robot, ma è possibile eseguire operazioni tastiera o mouse
System.setProperty("webdriver.chrome.driver","softwares\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://www.google.com");
Robot rob = new Robot();
rob.keyPress(keyEvent.VK_CONTROL);
rob.keyPress(keyEvent.VK_T);
rob.keyRelease(keyEvent.VK_CONTROL);
rob.keyRelease(keyEvent.VK_T);
Dopo questo passo è necessario un iteratore finestra per passare alla nuova scheda:
Set <String> ids = driver.getWindowHandles();
Iterator <String> it = ids.iterator();
String currentWindow = it.next();
String newWindow = it.next();
driver.switchTo().window(newWindow);
driver.findElement(By.linkText("www.facebook.com")).sendKeys(selectLinkOpeninNewTab);
fonte
2017-09-01 03:26:31
Sta funzionando bene ma si apre un'altra finestra del browser – nlogn
Funziona per me in una nuova scheda. Puoi confermare se questo ('driver.findElement (By.cssSelector (" body ")). SendKeys (Keys.CONTROL +" t "); ') comando apre una nuova finestra o una nuova scheda? –
funziona bene ora! – nlogn