Ouvrir un nouvel onglet dans une session de navigateur existante à l’aide de Selenium

Mon code actuel ci-dessous en C # ouvre une fenêtre puis navigue vers l’URL spécifiée après un clic sur un bouton.

protected void onboardButton_Click(object sender, EventArgs e) { IWebDriver driver = new ChromeDriver(); driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); driver.Navigate().GoToUrl("http://www.google.com") } 

Mais le site sur lequel je prévois de naviguer dispose d’ une connexion unique . Comment puis-je ouvrir un nouvel onglet dans ma session de navigateur existante et naviguer à partir de là? Le code ci-dessus ne semble pas fonctionner.

Merci mille fois!

Pour gérer un nouvel onglet, vous devez d’abord y accéder. Essayez de suivre:

 driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); driver.SwitchTo().Window(driver.WindowHandles.Last()); driver.Navigate().GoToUrl("http://www.google.com") 

Aussi, vous devrez peut-être revenir en arrière:

 driver.SwitchTo().Window(driver.WindowHandles.First()); 

Cela peut ne pas fonctionner:

 driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); 

Alternative: recherche d’un élément cliquable avec une cible vide (recherchez “vierge” dans le code de surce de la page). Cela ouvrira un nouvel onglet.

Puis basculez entre les tabs (merci @Andersson) avec:

 driver.SwitchTo().Window(driver.WindowHandles.Last()); driver.SwitchTo().Window(driver.WindowHandles.First()); 
 IWebDriver driver = new ChromeDriver(); 

Changer ceci en:

 var driver = new ChromeDriver(); 

Je ne sais pas pourquoi. Peut-être l’IWebDriver rate-t-il la méthode.