132 votes

Comment ouvrir un nouvel onglet en utilisant Selenium WebDriver en Java ?

Comment ouvrir un nouvel onglet dans le navigateur Firefox existant en utilisant Selenium WebDriver (alias Selenium 2) en Java ?

0voto

Alex Mathew Points 320
 Actions at=new Actions(wd);
 at.moveToElement(we);
 at.contextClick(we).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

0voto

vickisys Points 1391

Pour ouvrir un nouvel onglet dans le navigateur Firefox existant en utilisant Selenium WebDriver

FirefoxDriver driver = new FirefoxDriver();
driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL,"t");

0voto

gyss Points 1080

Le même exemple pour Node.js :

var webdriver = require('selenium-webdriver');
...
driver = new webdriver.Builder().
                    withCapabilities(capabilities).
                    build();
...
driver.findElement(webdriver.By.tagName("body")).sendKeys(webdriver.Key.COMMAND + "t");

0voto

Rajan.M Points 5
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());

driver.switchTo().window(tabs.get(0));

0voto

anilwanted Points 21

En raison d'un bogue dans https://bugs.chromium.org/p/chromedriver/issues/detail?id=1465 même si webdriver.switchTo change effectivement d'onglet, le focus est laissé sur le premier onglet.

Vous pouvez le confirmer en effectuant un driver.get après le switchWindow et voir que le deuxième onglet va effectivement vers la nouvelle URL et non vers l'onglet original.

Une solution de contournement pour le moment est ce qui suit yardening2 a suggéré . Utilisez du code JavaScript pour ouvrir une alerte et utilisez ensuite webdriver pour l'accepter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X