È possibile passare da una scheda all'altra senza disporre di più istanze del browser.
C'è una differenza nel modo in cui il driver Web gestisce finestre diverse e come gestisce le diverse schede.
Caso 1:
Nel caso in cui non ci sono più finestre, quindi il seguente codice può aiutare:
//Get the current window handle
String windowHandle = driver.getWindowHandle();
//Get the list of window handles
ArrayList tabs = new ArrayList (driver.getWindowHandles());
System.out.println(tabs.size());
//Use the list of window handles to switch between windows
driver.switchTo().window(tabs.get(0));
//Switch back to original window
driver.switchTo().window(mainWindowHandle);
Caso 2:
Nel caso in cui non ci sono più schede nella stessa finestra , quindi c'è solo una maniglia della finestra. Quindi il passaggio da una finestra all'altra mantiene il controllo nella stessa scheda.
In questo caso è più utile usare Ctrl + \ t (Ctrl + Tab) per passare da una scheda all'altra.
//Open a new tab using Ctrl + t
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
//Switch between tabs using Ctrl + \t
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
codice di esempio dettagliate possono essere trovate qui:
http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html
risposta meravigliosa. Ho una seconda domanda. Con IE, come faccio a passare alla nuova scheda? Sto usando C#. driver.switchTo(). window() richiede una stringa. Grazie –
Devi ottenere gli handle della finestra usando driver.getWindowHandles(). È quindi possibile scorrere le finestre e testare l'URL o il titolo per assicurarsi che sia quello desiderato. –
Penso di aver bisogno di un altro esempio. Sto usando C#. Penso che potrebbe essere java .. –